.NET 中的所有对象引用基本上都是 32 位或 64 位指针。
我很好奇 null
在内存中是如何表示的。它实际上是 32 还是 64 个零?根据规范,是否保证如此?
我在 MSDN 或 C# 语言规范上找不到答案。
还有一个similar question for C language ,但是 C# 呢?
最佳答案
I couldn't find the answer on MSDN or C# language specification.
因为这并不重要。因为您永远无法使用指针 - 这是一个实现细节。
您可以在 https://github.com/dotnet/coreclr 查看 CLR 源代码
就是说 - 我认为它全是 0,因为当把它加载到寄存器中时,应该有(至少我学过汇编程序时)一个特殊的标志,表明该值为空,所以检查速度非常快。
关于c# - C# 中的空引用基本上是全零指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51820822/