01:在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。
null是没有空间引用的;" " 是空间为0的字符串
02:简述类和结构的相同点和不同点。并用代码举例。
不同点:结构不用new,声明后必须给成员赋初始值,结构的关键字struct,而类的关键字时class
相同点:都有属性和方法
结构:
struct A
{
public int x; //不能直接对其进行赋值
public int y;
public static string str = null; //静态变量可以初始化
public A(int x,int y) //带参数的构造函数
{
this.x = x;
this.y = y;
Console.WriteLine("x={0},y={1},str={2}", x, y,str);
}
}
类:
Class B{
public int id;
}
03:什么是拆箱和装箱?举例说明
值类型转换为引用类型是装箱,而引用类型转换为值类型是拆箱
04:编程实现一个冒泡排序
int [] a={1,6,5,2,3,4,8};
for (int i = 0; i < a.length; i++) {
for (int j = i+1; j < a.length; j++) {
if (a[i]>a[j]) {
int num=a[j];
a[j]=a[i];
a[i]=num;
}
}
}
05:编程实现一个递归方法
public int sun(int num)
{
if (num==1||num==2)
{
return num;
}
return sun(num - 2) + sun(num - 1);
}
06:说说目前学的集合有哪些?每一种集合的特点以及使用场景
ArrayList集合:
类型不一致的时候使用它,它可以储蓄不同类型的数据
List<T>集合:
它在遍历的时候不用装箱拆箱
Hashtable集合:
它存储的是键对值类型,可以通过键找值
Dictionary<k,v>集合:
它也是键对值的方式存储,不过它也避免了拆箱和装箱
07:常量被标记为 “const” 和readonly” 有何不同?
const:它必须在定义时初始化;
static readonly:它可以在构造函数中初始化也可以在定义时初始化。
08:“out” 和 “ref” 参数有何不同?
public static void getOut(out string name)
{
name= "你好 ---out";
Console.WriteLine(name);
}
public static void getRef(ref string name)
{
name= "你好 ---ref";
Console.WriteLine(name);
}
public string name;
getOut(out name);
getRef(ref name);
09:“StringBuilder” 和 “String” 有何不同?
String每次都要去分配空间,而StringBuilder不用每次都去分配空间