1.值类型的数据在栈中,引用类型数据在堆中。
2.值类型直接存储数据的值,而引用类型存储数据的引用。
3.值类型的基类:System.ValueType,System.ValueType又继承自System.Object。引用类型的基类:System.Object。
4.值类型有:结构体struct,数值类型(short,ushort,int,uint,long,ulong,byte等),bool型(System.Boolean的别名),枚举enum(派生于 System.Enum),可空类型。
引用类型有:所有的数组(派生于System.Array,而System.Array继承自System.Object,数组的元素,不管是引用类型还是值类型,都存储在托管堆上,如int[]),类(class派生于System.Object),接口 (interface),委托(派生于System.Delegate),object(System.Object的别名),字符串(System.String的别名)。
5.所有的值类型都是密封(seal)的,无法派生出新的值类型。引用类型可以派生出新的类型。
6.当比较两个值类型时,进行的是内容比较;而比较两个引用类型时,进行的是引用比较。