C#中引用类型和值类型的区别,分别有哪些

C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型。

C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。

数组的元素,不管是引用类型还是值类型,都存储在托管堆上。

引用类型在栈中存储一个引用,其实际的存储位置位于托管堆。为了方便,本文简称引用类型部署在托管推上。

值类型总是分配在它声明的地方:作为字段时,跟随其所属的变量(实例)存储;作为局部变量时,存储在栈上。

值类型在内存管理方面具有更好的效率,并且不支持多态,适合用作存储数据的载体;引用类型支持多态,适合用于定义应用程序的行为。
C#的数据类型有三大类: 
1.数值类型 
2.引用类型 
3.指针类型(仅用于非安全代码) 

其中, 
1.1 数值类型包括:结构类型(struct)和枚举类型(enum) 
1.1.1 结构类型有:简单类型和用户自定义结构类型 
1.1.1.1 简单类型有:整型(byte、sbyte、long、ulong、short、ushort、 int、uint)、浮点数类型(float、double)、十进制类型(decimal)、字符类型(char)、布尔型(bool) 

2.1 引用类型又包括:类(class、object、string)、接口(interface)、数组(array)、代理(delegate) 
2.1.1 类包括:用户自定义的类、object基类、字符串类 

 区别请看http://www.cnblogs.com/Autumoon/archive/2008/08/18/1270685.html

posted @ 2015-01-02 14:34  178mz  阅读(265)  评论(0编辑  收藏  举报