Value Type and Reference Type

值类型与引用类型

1.1 区别与联系

        在网上看到一句形容值类型与引用类型的话“值类型是现金,引用类型是存折”,个人认为非常贴切。这句话指明了引用类型表示储存数据的地址,而值类型就是地址当中的数据。
        具体区别及联系见下表:

值类型 引用类型
定义 直接存储数据 持有数据的引用
存储 栈(一声明就分配内存) 堆(创建实例后才分配内存)
例子 1.所有数字数据类型;
2.Boolean、Char 和 Date;
3.所有结构,即使其成员是引用类型;
4.枚举类型
1.string, class;
2.所有数组,即使其元素是值类型;
equal用法 比较的是二者的引用地址而不是内部的值 比较的是二者的值
垃圾回收(GS) 栈不归GC管,所以作用范围一过,立即回收空间 劳烦GC动手

        除了以上不同之外,还有一个比较晦涩的不同,引用类型一般都具有继承性,但是值类型一般都是封装的,因此值类型不能作为其他任何类型的基类。虽说不懂也记录下来,因为笔面试会考。

1.2 参考

值类型和引用类型的区别
值类型和引用类型
C#详解值类型和引用类型区别

猜你喜欢

转载自blog.csdn.net/lrglgy/article/details/88983662