值类型和引用类型

1:现实中的值类型和引用类型:

  值类型:就如一份报纸,你可以影印一份给你的朋友,你的和副本各自独立,各自改动时,互不影响。

  引用类型:一个网页,你可以给你的一个朋友一个URL,如果网页内容改变,则都会变。

2:.NET中大多数类型都是引用类型。

  引用类型:类,数组 ,委托,接口。

  值类型:结构,枚举。

3:变量的值总是在它声明时的位置存储的。(局部变量:栈(stack);实例变量:实力本身所在)

  引用类型实力(对象):堆(heap);静态也是;

4.对于引用类型,每个对象的开头都包含一个数据块,它标示了对象的实际类型,同时还提供其它的一些信息。永远都不能改变一个对象的类型,引用并不知道对象的类型。

5.值类型不需要垃圾回收,不会因类型标识而产生开销,也不需要取值这一步运算。

6.引用类型,在传递参数,赋值,将值返回和执行类似的操作时,只需要赋值4或8个字节,而不是复制全部数据。

7.引用类型在堆上,值类型中,局部变量在栈上,实例变量不一定,取决于上下文。

8.值类型在需要变成引用类型时,为装箱,反之为拆箱。

原文地址:https://www.cnblogs.com/hzko5114/p/3587400.html