c# 中的值类型和引用类型区别
c#中的变量类型根据其定义可以分为两种:一种是值类型,一种是引用类型,这两种类型的差异在于数据的存储方式,值类型的变量本身直接存储数据;而引用类型则存储实际数据的引用,程序通过此引用找到真正的数据。
值类型
值类型变量直接存储器数据值,主要包括整数类型,浮点类型以及布尔类型等。值类型变量在堆栈中进行分配,因此效率很高,使用值类型主要目的是为了提高性能。值类型有如下特性:
- 值类型变量都存储在堆栈中;
- 访问值类型变量时,一般都是直接访问其实例;
- 每个值类型变量都有自己的数据副本,因此对一个值类型变量的操作不会影响其他变量。
- 复制值类型变量时,复制的是变量的值,而不是变量的地址;
- 值类型变量不能为null,必须具有一个确定的值。
引用类型
引用类型是构建C#应用程序的主要对象类型数据,在应用程序执行的过程中,预先定义的对象类型以new创建对象的实例,并且存储在堆栈中。引用类型具有如下特征:
- 必须在托管堆中为应用类型变量分配内存;
- 必须使用new关键字来创建引用类型变量;
- 在托管堆中分配的每个对象都有与之相关联的附件成员,这些成员必须被初始化;
- 引用类型变量是由垃圾机制来管理的;
- 多个引用类型变量可以引用同意对象,这种情形下,对一个变量的操作会影响另一个变量所引用的同一对象。
- 引用类型在赋值前的值都是null。
原创文章,转载请务必注明出处!
在我眼中键盘和琴键是一样的,都能演绎出感动世界的旋律!