内置整数值类型的位宽是固定的吗?

Is the bit width of built-in integral value types fixed?

我正在寻找一个明确的信息,是否(原始)整数类型(如 byteshortintlong 等的位宽.) 在 C# 中(因此映射到 CLI 固定宽度类型,如 ByteInt16Int32Int64、...)是固定的(永远)或者它可能会在未来发生变化(语言修订),我们可能会遇到类似 C/C++ 的情况,其中内置类型 至少 N 位宽 .

动机是:我们可以安全地使用 C#.int 作为 整数类型,使用 32 位作为其值 ,还是只使用 CLI.Int32 对于我们想要 32 位的情况?

The motivation is: could we safely use C#.int as the integral type using 32 bits for its value, or is it better to just use CLI.Int32 for the cases we want exactly 32 bits?

从技术上讲,它们是相同的。

int 等于 Int32

为什么我们可以用两个不同的名字来表示同一个类型?这个想法是原始类型可能是最常用的,因此 C# 团队为这些类型创建了别名以便更快地编写代码。

基于以上,声明int n等同于Int32 n = new Int32()

另请注意,C# 功能只是 CLI 功能的子集。这意味着在 CLI 中可能存在未在 C# 中实现的类型,反之亦然。例如,在 CLI 中没有 UInt32(无符号整数),但在 C# 中有。

综上所述,如果new type是在CLI或C#中实现的,并不意味着它会在相反的方向上实现。另外,我不相信有人会更改现有类型的实现,因为这会破坏兼容性。