01:在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。
string str= " ",表示一个空串,被实列化了,占用了内存空间, string str=null,表示一个空引用,没有占用了空间,
02:简述类和结构的相同点和不同点。并用代码举例。
结构与类有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。
类:引用类型,一般需要封装有属性,有默认构造函数,new时字段可以不完全初始化
结构:值类型,一般公开字段无属性,无默认构造函数,必须完全初始化
public struct Person { 结构示例: string Name; int height; int weight public bool overWeig() { //implement something } } 类示例: public class Test { int hours; int minutes; int seconds; public void Show() { //implementation of behavior } }03:什么是拆箱和装箱?举例说明
拆箱是把“引用”类型转换成“值”类型;
装箱是把“值”类型转换成“引用类型”;
例如:
bool aa=true; object bb=aa; //装箱 bool cc=(bool)bb; //拆箱04:编程实现一个冒泡排序
static void Main(string[] args) { Console.WriteLine("将10个数存入数组中,然后实现冒泡排序"); double[] c = new double[10] { 2, 3, 5, 7, 12, 27, 77, 23, 17, 99 }; int i, j; double m; for (i = 0; i < 10; ++i) for (j = 0; j < 10 - i - 1; ++j) { if (c[j] > c[j + 1]) { m = c[j]; c[j] = c[j + 1]; c[j + 1] = m; } } Console.Write("10个数冒泡排序后(按从小到大的顺序)为:"); foreach (double var in c) { Console.Write(var); Console.Write(" "); } Console.ReadKey(); }05:编程实现一个递归方法
public static int F(int n) { int sum=0; if(0==n) { return 1; } else{ sum=n*F(n-1); } return sum; }06:说说目前学的集合有哪些?,每一种集合的特点以及使用场景
List<T> Dictionary<K,V> ArrayList
07:变量被标记为 “const” 和readonly” 有何不同?
const修饰的常量在声明的时候必须初始化;
readonly修饰的常量则可以延迟到构造函数初始化 ;
08:“out” 和 “ref” 参数有何不同?用代码举例
ref型参数 public void sum(ref int a, int b) { a += b; } out型参数 public void sum1(out int a, int b) { a = b+2; } public static void Main(string[] args) { C c = new C(); int a = 1, b = 2; c.sum(a,b); Console.WriteLine("a:{0}", a); a = 1; b = 2; c.sum(ref a, b); Console.WriteLine("ref a:{0}", a); a = 1; b = 2; c.sum1(out a, b); Console.WriteLine("out a:{0}", a); }09:“StringBuilder” 和 “String” 有何不同?
string 对象时恒定不变的,stringBuider对象表示的字符串是可变的。stringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。