我正在寻找一个无法确定的信息是否(原始)整数类型的位宽(如byte
,short
,int
,long
等)在C#
中(因此映射到CLI固定宽度类型,如Byte
,Int16
,Int32
,Int64
,...)是固定的(永远)或者它可能在将来发生变化(语言修订版),我们可能会遇到类似C / C ++的情况,其中内置类型至少N位宽。
动机是:我们可以安全地使用C#.int
作为整数类型,使用32位作为其值,或者最好只使用CLI.Int32
来处理我们的情况想要32位?
答案 0 :(得分:3)
动机是:我们可以安全地使用C#.int作为整数类型 使用32位作为其值,或者使用CLI.Int32更好 我们想要的情况恰好是32位?
从技术上讲,它们是一样的。
int
等于Int32
为什么我们可以使用两个不同的名称来表示相同的类型?我们的想法是原始类型可能是最常用的,因此C#团队为类型创建了别名,以便更快地编写代码。
根据以上所述,声明int n
相当于Int32 n = new Int32()
另请注意,C#功能仅是CLI功能的子集。这意味着在CLI中可能存在类型,这些类型未在C#中实现,反之亦然。例如,在CLI中没有UInt32(无符号整数),但在C#中它没有。
基于以上所述,如果在CLI或C#中实现新类型,这并不意味着它将以相反的方式实现。此外,我不相信有人会改变现有类型的实现,因为这会破坏兼容性。