C#引用占用多少内存? 引用是否与对象本身一样消耗内存?
答案 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位平台上运行。