在c#中,int和Int32是同一个东西,但我读过很多次int比Int32更受欢迎,没有给出原因。这是有原因的吗,我应该在意吗?
当前回答
int是System的别名。Int32,定义如下: 内置类型表(c#参考)
其他回答
int是一个c#关键字,是明确的。
大多数情况下,这并不重要,但有两件事与Int32相悖:
您需要有一个“using System;”语句。使用"int"不需要Using语句。 可以定义自己的名为Int32的类(这将是愚蠢和令人困惑的)。Int总是Int的意思。
我知道最好的做法是使用int,所有MSDN代码都使用int。然而,据我所知,除了标准化和一致性之外,没有其他原因。
int是c#语言中System的快捷方式。Int32
虽然这确实意味着微软可能会改变这种映射,但FogCreek讨论的一篇文章指出[来源]
“关于64位的问题——微软确实在开发64位版本的。net框架,但我很确定int不会在该系统上映射到64位。
原因:
1. c# ECMA标准明确规定int是32位,long是64位。
2. 微软在框架1.1版本中引入了额外的属性和方法,返回长值而不是int值,例如Array。除了Array.GetLength之外的GetLongLength。
所以我认为可以肯定地说,所有内置的c#类型都将保持当前的映射。”
它们都声明了32位整数,正如其他作者所述,使用哪一个主要是语法风格的问题。然而,他们并不总是以同样的方式表现。例如,c#编译器不允许这样做:
public enum MyEnum : Int32
{
member1 = 0
}
但是它允许这样做:
public enum MyEnum : int
{
member1 = 0
}
图。
我使用int是为了防止Microsoft将整数的默认实现更改为一些新版本(我们称其为Int32b)。
然后,Microsoft可以将int别名更改为Int32b,我不需要更改任何代码就可以利用他们新的(希望是改进的)整数实现。
这同样适用于任何类型关键字。
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 如何使用JSON确保字符串是有效的JSON。网
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何分裂()一个分隔字符串到一个列表<字符串>
- 如何转换列表<字符串>列表<int>?
- c#对象列表,我如何得到一个属性的和