值类型与引用类型

  一  值类型:值类型是从System. ValueType类继承而来的类型

  值类烈变量直接存储其数据值,主要包含整数类型、浮点类型以及布尔类型等。值类型变量在堆

栈中进行分配,因此效率很高,使用值类型的主要目的是为了提高性能。

  值类型具有如下特性:

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

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

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

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

  5,值类型变量不能为null,必须具有一个确定的值。

主要包括:

  --->1,整数类型(sbyte,short,mt,long,byte,ushort,uint,ulong)

  --->2,浮点类型(float,double)如果不做任何设置,包含小数点的数值都被认为是double类型

  --->3,布尔类型():要用来表小true/false值,一个布尔类型的变量,其值只能是true或者false,布尔类型变紧不能与止U他类型进行转换。

  --->4,枚举类型

注意:在定义全局变量时,如果没有特定的要求不用对其进行初始化,整数类型和浮点型的默认初始化为0,布尔类型的初始化为false.

二  引用类型

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

  2,必须使用关键字new来创建引用类型变量.

  3,托管堆中分配的梅个对象都有’,之相关联的附加成员,这此成员必须被初始化。

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

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

  6,引用类型被赋值前的值都是null

  所有的类都是引用类型,主要包括类,接口,数组,委托

值类型与引用类类型区别

  --->1,值类型直接存储其值,引用类型存储对其值的引用

  --->2,值类型在栈中操作,在编译时就分配好了内存空间;引用类型在堆中分配存储单元,在运行中动态分配的内存空间

  --->3,值类型相当于现金,要用就直接用;而引用类型相当于存折,要用得先去银行取。

 

原文地址:https://www.cnblogs.com/valiant1882331/p/4016246.html