在第 2 章的数字类型主题(C# 5.0 in a Nutshell)中,我发现了这句话:
为什么int和long是一等公民并受到 C# 和运行时的青睐?以及,为什么其他类型用于互操作性?
在第 2 章的数字类型主题(C# 5.0 in a Nutshell)中,我发现了这句话:
为什么int和long是一等公民并受到 C# 和运行时的青睐?以及,为什么其他类型用于互操作性?
由于现代处理器的构造方式。32 位和 64 位处理器特别优化以处理 32 位和 64 位整数。这称为字长:
现代处理器,包括嵌入式系统,通常具有 8、16、24、32 或 64 位的字长,而现代通用计算机通常使用 32 或 64 位。
这意味着处理器可以比其他类型更轻松地使用这些类型执行算术运算。A byte
or short
,尽管理论上占用的内存空间较小,但仍会加载到处理器上的 32 位或 64 位寄存器中(取决于架构)。
int
和long
over uint
and的偏好ulong
是完全任意的。没有技术上的理由说明无符号整数比有符号整数更难支持。如果有的话,有符号整数将更难在硬件中支持。
此外,“兼容性”甚至不是一个理由,因为在设计 .NET 时,没有什么可以保持兼容的!
所以签名类型是首选,因为他们喜欢它。
他们很可能将 CLS 设计为包含无符号整数,而且它也可以工作。