C# 中值类型与引用类型及区别

目录

知识点

一、定义

二、区别


知识点

一、定义

        值类型:通过变量直接存储数据

        例如:byte, int, short, long, float, double, char, bool,struct等等

        引用类型:变量持有的是数据的引用,而数据存在堆中

类型 类别 派生源
引用类型 数组 System.Array
类(class) System.Object
接口(interface) /
委托(delegate) System.Delegate
object System.Object
字符串(string) System.String

二、区别

角度 区别
存储内存 值类型的数据存储在内的存栈中,引用类型的数据存储在内存的堆中,而内存单元只存放堆中对象的地址
存取速度 值类型的存取速度快,引用类型的存取速度慢
存储数据 值类型表示实际数据,引用类型表示的是指向存储在内存堆中的数据的指针或引用
派生类别 值类型继承自System.ValueType,引用类型继承自System.Object
内存回收 栈的内存分配由系统自动回收,而堆在.Net中由GC释放
(*与存储数据类似) 值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用
(*与存储内存类似) 值类型变量直接把变量的值保存在堆栈中,引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中

猜你喜欢

转载自blog.csdn.net/H_Greddy/article/details/127133293
今日推荐