一、类型
类型总共分为两种,一种是值类型(Value Type),如枚举、结构;另一种是引用类型(Reference Type),如类、接口、委托等。
值类型
1,值类型通常分配在线程的堆栈上
2,作用域结束时,所占空间自行释放,具有高效率
3,所有的值类型都派生自system.ValueType(system.ValueType 本身就是一个类型,是重写的object的Equals()方法
4,访问值类型时,一般访问的都是其实例
5,每个值类型变量都有自己的数据副本,因此对一个值类型的变量的操作不会影响其他的变量
6,复制值类型变量时,复制的时变量的值,而不是变量的地址
7,值类型变量不能为null,必须具有一个确定的值
引用类型
1,引用类型通常分配在托管堆上
2,由垃圾回收(CG)来控制其回收,效率低
3,必须使用关键字new来创建引用类型的变量
4,多个引用类型变量都可以引用同一个对象,这种情况下,对一个变量的操作会影响另一个变量所引用的同一对象
5,引用类型被赋值之前的值都是null