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


当前回答

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

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

其他回答

这在实践中没有什么区别,最终你会采用你自己的惯例。我倾向于在分配类型时使用关键字,在使用静态方法时使用类版本等:

int total = Int32.Parse("1009");

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

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

前一段时间,我在微软做一个项目,当时微软。net CLR产品团队的人来拜访我们。这个人编写了例子,当他定义变量时,他使用“Int32”与“int”和“String”与“String”。

我记得在微软的其他示例代码中见过这种样式。所以,我做了一些研究,发现每个人都说“Int32”和“int”之间没有区别,除了语法着色。事实上,我发现很多材料都建议您使用“Int32”使您的代码更具可读性。所以,我采用了这种风格。

前几天我确实发现了不同!编译器不允许你使用" Int32 "输入enum,但当你使用" int "时,它允许你输入enum。别问我为什么,因为我还不知道。

例子:

public  enum MyEnum : Int32
{
    AEnum = 0
}

这个作品。

public enum MyEnum : int
{
    AEnum = 0
}

取自:Int32符号vs. int

我使用int是为了防止Microsoft将整数的默认实现更改为一些新版本(我们称其为Int32b)。

然后,Microsoft可以将int别名更改为Int32b,我不需要更改任何代码就可以利用他们新的(希望是改进的)整数实现。

这同样适用于任何类型关键字。

我知道最好的做法是使用int,所有MSDN代码都使用int。然而,据我所知,除了标准化和一致性之外,没有其他原因。