C#学习笔记——值类型与引用类型的区别

2018-05-26  本文已影响6人  阿克西亚

值类型 ValueType

值类型包括了数值类型、结构体、bool型、 枚举等。值类型的变量直接存储数据,分配在托管栈中。
变量会在创建他们的方法返回时自动释放,如:

Char name="C"

当实例化它的方法结束时,name变量在栈上占用的内存就会自动释放。

C#的所有值类型均隐式派生于System.ValueType。

引用类型 ReferenceType

引用类型包括数组、接口、委托、onjrct、字符串、null类型、类等。

引用类型的变量持有的是数据的引用,数据存储在数据堆,分配在托管堆中,变量并不会在创建它们的方法结束时释放内存,它们所占用的内存会被CLR中的垃圾回收机制释放。

值类型与引用类型的区别

image.png

值传递只传递值,不影响原始值

引用传递传递的是内存地址,修改后会改变内存地址对应储存的值

上一篇下一篇

猜你喜欢

热点阅读