首页 > 解决方案 > 空引用在 C# 中基本上是全零指针吗?

问题描述

.NET 中的所有对象引用基本上都是 32 位或 64 位指针。
我很好奇null在内存中是如何表示的。它实际上是 32 个还是 64 个零?根据规范,是否可以保证如此?

我在 MSDN 或 C# 语言规范上找不到答案。
C语言也有类似的问题,但是C#呢?

标签: c#.netmemory

解决方案


我在 MSDN 或 C# 语言规范上找不到答案。

因为没关系。因为您永远无法使用指针 - 这是一个实现细节。

您可以在https://github.com/dotnet/coreclr检查 CLR 源

那就是说-我认为全为0,因为将其加载到寄存器中时,应该(至少在我学习汇编程序时)有一个特殊标志,该标志为空,因此检查速度非常快。


推荐阅读