c# - 空引用在 C# 中基本上是全零指针吗?
问题描述
.NET 中的所有对象引用基本上都是 32 位或 64 位指针。
我很好奇null
在内存中是如何表示的。它实际上是 32 个还是 64 个零?根据规范,是否可以保证如此?
我在 MSDN 或 C# 语言规范上找不到答案。
C语言也有类似的问题,但是C#呢?
解决方案
我在 MSDN 或 C# 语言规范上找不到答案。
因为没关系。因为您永远无法使用指针 - 这是一个实现细节。
您可以在https://github.com/dotnet/coreclr检查 CLR 源
那就是说-我认为全为0,因为将其加载到寄存器中时,应该(至少在我学习汇编程序时)有一个特殊标志,该标志为空,因此检查速度非常快。
推荐阅读
- php - 如何在控制器中使用 laravel Auditor
- c++ - Divide et impera 数组错误的元素的总和
- c++ - 在 WM_CREATE 中加载多个位图的 C++ Win32 不会加载
- python - Python/Kivy-iOS/Xcode 环境的模块导入问题
- sql - 如何在多个条件下计算值以及如何设计数据库?
- makefile - make 不解析目标名称的绝对路径
- python-3.x - CSV 输出只取第一组字典
- mongodb - 尝试在 MacOS 上安装 mongoldb
- excel - 利用 while 循环在 Excel 电子表格中创建组合框
- powershell - 将 Set-PnPListItem 与“发布图像”类型一起使用