首页 > 编程语言 > 详细

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

时间:2015-03-25 16:36:09      阅读:254      评论:0      收藏:0      [点我收藏+]

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

      值类型特性:

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

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

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

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

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

 

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

  引用类型特征:

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

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

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

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

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

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

eg:声明引用类型的变量

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

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

 

 

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

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

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

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

 

 

 

 

初学者,如有错误,请指教!

 

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

原文:http://www.cnblogs.com/hope98/p/4365922.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!