C#引用占用多少内存?

时间:2013-10-26 11:59:44

标签: c# .net reference

C#引用占用多少内存? 引用是否与对象本身一样消耗内存?

3 个答案:

答案 0 :(得分:16)

引用实现为指针,因此在以x86模式(32位)运行的应用程序中,引用为4个字节,而在x64模式(64位)中,引用为8个字节。

由于引用只是指向对象的指针,因此引用的大小相同,无论它指向什么,或者即使它根本没有指向任何内容(null)。

答案 1 :(得分:12)

引用会消耗其运行的平台的本机字大小。

即32位:32位。 64位:64位。

所以没有..你的对象的大小可以变化..引用将始终如上所述。

答案 2 :(得分:3)

来自第22页的C# 5.0 in a Nutshell: The Definitive Reference;

  

引用类型需要单独分配内存   参考和对象。该对象消耗与其字段一样多的字节,   加上额外的管理开销。精确的开销是   本质上是.NET运行时实现的私有,但是   至少开销是八个字节,用于存储密钥   对象的类型,以及其锁定状态等临时信息   用于多线程和用于指示是否已修复的标志   从垃圾收集器的运动。 每个对象的引用   需要额外的四个或八个字节,具体取决于.NET   运行时在32位或64位平台上运行。