C#值类型和引用类型

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.当比较两个值类型时,进行的是内容比较;而比较两个引用类型时,进行的是引用比较。

posted on 2015-04-19 23:26  Sakya00  阅读(196)  评论(0编辑  收藏  举报