C#面试题
1.CLR运行时包含CTS CLS
CTS 通用类型系统 把不同语言的类型统一
CLS 通用语言规范 统一语法等规范
说白了 就是不同语言运行时候 都会进行CTSCLS操作 编译成中间代码,然后运行
2.GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管
理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
3.结构
public struct Stu(){
public int id;
public string name;
}
调用
Stu s;
s.id=1;
s.name="xiaomi";
结构是值类型,需要开辟空间,用来保存字段少的时候
4.委托
语法例子:
1 //声明一个委托 2 delegate int myDelegateHandler(int a, int b); 3 //声明一个需要被调用的类 4 public class A 5 { 6 //声明一个需要调用方法 7 public static int M1(int a, int b) 8 { 9 int c = 0; 10 c = a + b; 11 return c; 12 } 13 } 14 //入口类 15 public class B 16 { 17 public static void Main() 18 { 19 //实例一个委托 并指定调用类和方法 20 myDelegateHandler mdh = new myDelegateHandler(A.M1); 21 //调用委托 22 int sum = mdh(2, 2); 23 Console.WriteLine(sum.ToString()); 24 25 } 26 }
通过使用委托你可以实现对方法变化的封装.
打个比方:如果你骑自行车,你需要有骑自行车的方法DriveBike().如果你骑摩托车你需要有骑摩托车的方法.现在你有一个方法DriveMoto.现在你需要定义一个方法,实现你骑(自行车或者摩托车)到某地DriveTo(地点,骑的方式)
骑的方式这里其实就是委托.在使用的时候,如果你是骑自行车你就用DriveBike实例化委托的实例带入DriveTo方法,如果你骑摩托车你就用DriveMoto实例化"骑的方式"这个委托带入DriveTo方法.