您的位置:首页 > 编程语言 > C#

c#语言基础(2)理解值类型和引用类型

2015-03-25 15:52 253 查看
值类型:值类型是从System.ValueType类继承而来的类型,主要包括数值型,布尔型,结构和枚举。值类型变量直接存储数据值。值类型在堆栈中分配,因此效率高,使用值类型主要目的是为了提高性能!  

值类型特性:

        值类型变量都存储在堆栈中


        访问值类型变量时,一般直接访问其实例

        每个值类型变量都有自己的数据副本,因此对一个值类型变量进行操作不会影响其他变量

        复制值类型变量时,复制的是变量的值,而不是变量的地址

         值类型变量不能为NULL值,必须有一个确定的值


引用类型:引用类型主要用于构建c#应用程序对象类型数据,通过new关键字可以创建对象实例,对象实例存储在堆中

  引用类型特征:

        必须在托管堆中为引用类型变量分配内存

        引用类型被赋值前的值都是NULL

        多个引用类型变量可以同时引用一个对象,这种情形下,对一个变量的操作会影响另一个变量所引用的同一个对象

        必须使用new关键字使用引用类型变量

        引用类型变量是由垃圾回收机制来管理的

        在托管堆中分配的每个对象都有与之相关联的附加成员,这些成员必须被初始化

eg:声明引用类型的变量

object o = new object();     //定义object类型
string str = "这是一个字符串";       //string类型是引用类型


所有被称为“类”的都是引用类型,主要包括接口,类,数组和委托

值类型和引用类型的区别:

  值类型继承于System.ValueType类,其他类型则为引用类型

  值类型的对象分配在栈上,而引用类型却分配在堆栈中

  在赋值时,值类型的变量将得到一个真实的数据副本,而对于引用类型仅仅是把对象的引用赋给变量,这就导致了多个变量引用同一个对象实例

初学者,如有错误,请指教!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: