1. CLR 支持两种类型:引用类型 和 值类型。
2. FCL 中大多数的类型是 引用类型,但程序中使用最多的是 值类型。
【引用类型】
- 内存必须从托管堆上分配。
- 堆上分配的每个对象都有一个额外的成员,这些成员必须初始化。
- 对象上的其他字节(为字段而设)总是设为零。
- 从托管堆上分配一个对象时,可能强制执行一次垃圾收集操作。
【值类型】
- 值类型的实例一般在线程栈上分配。
- 值类型的实例的一个变量中,不包含一个指向实例的指针。变量本身包含了字段。
- 值类型的实例不受垃圾回收器的控制,缓解了托管堆中的压力,减少了应用程序在生存期中的垃圾回收次数。
- 值类型是密封(sealed)的,目的是防止将一个值类型用作其他任何引用类型或值类型的基类型。