首页 > 代码库 > .Net的基础概念

.Net的基础概念

1,参数传递.

默认都是按值传递(无论引用还是值类型),也就意味着传递参数的一个副本给方法.之后在方法体内对参数的更改,对原始参数没有影响.

使用ref/out可以按引用传递,直接影响原始参数变量.两者的区别是ref参数必须在传递之前进行初始化.在异步方法和迭代器方法中,不能使用它.

2,CTS,CLS

CTS是一个集合,符合它的规范的类型才能在CLR上运行.CLS是它的子集,因为C#中有的类型,在VB中可能没有(ulong).

默认不会进行CLS的检查,[assembly:System.CLSCompliant(true)]可以进行检查.

不符合CLS的代码,在不同语言间会出现复用的问题.

3,CLR

编译阶段,生成的是CIL组成的中间语言,然后在运行时由个平台的JIT来编译成机器指令进行运行,所以能够跨平台.

4,GC

0代是新创建的对象,1代是经历过1次GC后留存的,2代是经历过1次以上GC留存的.回收时,先从0代开始.