C#引用占用多少内存?

Lou*_*eda 8 .net c# reference

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

Guf*_*ffa 17

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

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

  • Downvoter:为什么选择downvote?如果你不解释你认为错的是什么,它就无法改善答案. (3认同)

Sim*_*ead 13

引用使用其运行的平台的本机字大小.

也就是说,32位:32位.64位:64位.

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


Son*_*nül 6

来自C# 5.0 in a Nutshell: The Definitive Reference in page 22;

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