在c#中,int和Int32是同一个东西,但我读过很多次int比Int32更受欢迎,没有给出原因。这是有原因的吗,我应该在意吗?


当前回答

int可以保存的字节数取决于你编译它的目的,所以当你为32位处理器编译程序时,它可以保存从2^32/2到-2^32/2+1的数字,而为64位编译时,它可以保存从2^64/2到-2^64/2+1的数字。Int32总是包含2^32个值。

编辑:忽略我的回答,我没有看到c#。我的答案是针对C和c++的。我从来没用过c#

其他回答

还要考虑Int16。如果你需要在应用程序的内存中存储一个Integer类型,并且你关心使用的内存量,那么你可以使用Int16类型,因为它使用的内存更少,并且比Int32类型的最小/最大范围更小(这就是int类型)。

曾经,int数据类型与编译器目标机器的寄存器大小挂钩。例如,16位系统的编译器将使用16位整数。

然而,谢天谢地,我们已经很少看到16位了,当64位开始流行时,人们更关心的是使它与旧软件兼容,32位已经存在了很长时间,对于大多数编译器来说,int只是假设为32位。

没关系。int是语言关键字,Int32是实际的系统类型。

也可以在这里看到我对相关问题的回答。

它们都声明了32位整数,正如其他作者所述,使用哪一个主要是语法风格的问题。然而,他们并不总是以同样的方式表现。例如,c#编译器不允许这样做:

public enum MyEnum : Int32
{
    member1 = 0
}

但是它允许这样做:

public enum MyEnum : int
{
    member1 = 0
}

图。

这两者确实是同义的;int看起来会更熟悉一些,Int32让那些阅读你的代码的人更清楚地看到32位。我倾向于在我只需要“一个整数”的地方使用int,在大小很重要的地方使用Int32(密码代码,结构),这样未来的维护者就会知道在适当的情况下扩大int是安全的,但应该注意以同样的方式改变Int32。

结果代码将是相同的:区别纯粹是可读性或代码外观。