c# - C# 中的空引用基本上是全零指针吗?

标签 c# .net memory

.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/

相关文章:

c# - 基于模式的字符串解析

c# - 调用以 std::list 作为参数的 C++ 函数

c# - 放置第三方 DLL 以供引用的最佳位置

c++ - 跨线程的内存分配和释放

c# - 英特尔的开源 uPNP SDK 有绝对 0 的文档,为什么?

c# - 类型或命名空间名称 'DataServiceKeyAttribute' 不存在

c# - 如何组合在 C# 中运行的两个 SQLite 语句?

python - 我的所有 Python 模块都应该显式导入相同的基本模块吗?

c++ - SSE 与类(class)保持一致

c# - 将 xstream 生成的 xml 读入 .net