在c#中,int和Int32是同一个东西,但我读过很多次int比Int32更受欢迎,没有给出原因。这是有原因的吗,我应该在意吗?
当前回答
一些编译器在不同的平台上对int有不同的大小(不是c#特定的)
一些编码标准(MISRA C)要求所有使用的类型都指定大小(即Int32而不是int)。
为不同类型的变量指定前缀也很好(例如,b表示8位字节,w表示16位字,l表示32位长字=> Int32 lMyVariable)
您应该关心,因为它使您的代码更具可移植性和可维护性。
如果你总是要使用c#,而且c#规范在这方面永远不会改变,那么可移植可能不适用于c#。
可维护的ihmo将始终适用,因为维护代码的人可能不知道这个特定的c#规范,并且错过了int偶尔超过2147483647的错误。
在简单的for循环中,例如计算一年中的月份,您不会关心,但是当您在一个可能会owerflow的上下文中使用该变量时,您应该关心。
您还应该注意是否要对它进行逐位操作。
其他回答
如前所述,int = Int32。为了安全起见,请确保始终使用int. minvalue /int。MaxValue在实现任何关心数据类型边界的东西时。假设. net决定int现在是Int64,那么你的代码就不那么依赖于边界了。
你不应该在意。如果大小是一个问题,我会使用字节,短,int,然后长。使用int型比int32大的唯一原因是需要一个大于2147483647或小于-2147483648的数。
除此之外,我不在乎,还有很多其他的事情需要关心。
int是一个c#关键字,是明确的。
大多数情况下,这并不重要,但有两件事与Int32相悖:
您需要有一个“using System;”语句。使用"int"不需要Using语句。 可以定义自己的名为Int32的类(这将是愚蠢和令人困惑的)。Int总是Int的意思。
我建议使用微软的StyleCop。
它类似于FxCop,但用于与样式相关的问题。默认配置与微软的内部样式指南相匹配,但也可以根据您的项目进行定制。
它可能需要一些时间来适应,但它肯定会使您的代码更好。
您可以将它包含在构建过程中,以自动检查是否违反。
它们都声明了32位整数,正如其他作者所述,使用哪一个主要是语法风格的问题。然而,他们并不总是以同样的方式表现。例如,c#编译器不允许这样做:
public enum MyEnum : Int32
{
member1 = 0
}
但是它允许这样做:
public enum MyEnum : int
{
member1 = 0
}
图。
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 如何使用JSON确保字符串是有效的JSON。网
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何分裂()一个分隔字符串到一个列表<字符串>
- 如何转换列表<字符串>列表<int>?
- c#对象列表,我如何得到一个属性的和