引用类型从托管堆上分配内存,值类型从一个线程堆栈分配。
值类型有已装箱和未装箱两种形式;引用类型总是已装箱形式。
System.ValueType重写了Equals()方法和GetHashCode()方法;自定义值类型也要重写这两个方法。引用类型可以为null;值类型总是包含其基础类型的一个值(起码初始化为0),CLR为值类型提供相应的nullable。copy值类型变量会逐字段复制,从而损害性能,copy引用类型只复制内存地址。
值类型的Finalize()方法是无效的,不会在垃圾自动回收后执行——就是说不会被垃圾收集。