c# 中的值类型和引用类型区别

      c#中的变量类型根据其定义可以分为两种:一种是值类型,一种是引用类型,这两种类型的差异在于数据的存储方式,值类型的变量本身直接存储数据;而引用类型则存储实际数据的引用,程序通过此引用找到真正的数据。

    值类型

    值类型变量直接存储器数据值,主要包括整数类型,浮点类型以及布尔类型等。值类型变量在堆栈中进行分配,因此效率很高,使用值类型主要目的是为了提高性能。值类型有如下特性:

  • 值类型变量都存储在堆栈中;
  • 访问值类型变量时,一般都是直接访问其实例;
  • 每个值类型变量都有自己的数据副本,因此对一个值类型变量的操作不会影响其他变量。
  • 复制值类型变量时,复制的是变量的值,而不是变量的地址;
  • 值类型变量不能为null,必须具有一个确定的值。

    引用类型

    引用类型是构建C#应用程序的主要对象类型数据,在应用程序执行的过程中,预先定义的对象类型以new创建对象的实例,并且存储在堆栈中。引用类型具有如下特征:

  • 必须在托管堆中为应用类型变量分配内存;
  • 必须使用new关键字来创建引用类型变量;
  • 在托管堆中分配的每个对象都有与之相关联的附件成员,这些成员必须被初始化;
  • 引用类型变量是由垃圾机制来管理的;
  • 多个引用类型变量可以引用同意对象,这种情形下,对一个变量的操作会影响另一个变量所引用的同一对象。
  • 引用类型在赋值前的值都是null。

     原创文章,转载请务必注明出处!

posted @ 2011-11-17 23:36  甲今文  阅读(208)  评论(0编辑  收藏  举报