在c#中,int和Int32是同一个东西,但我读过很多次int比Int32更受欢迎,没有给出原因。这是有原因的吗,我应该在意吗?
当前回答
它们都声明了32位整数,正如其他作者所述,使用哪一个主要是语法风格的问题。然而,他们并不总是以同样的方式表现。例如,c#编译器不允许这样做:
public enum MyEnum : Int32
{
member1 = 0
}
但是它允许这样做:
public enum MyEnum : int
{
member1 = 0
}
图。
其他回答
你不应该关心大多数编程语言,除非你需要编写非常特定的数学函数,或者针对特定架构优化的代码……只要确保类型的大小足够你(例如,如果你知道你需要超过32位,就使用比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#类型都将保持当前的映射。”
根据Visual Studio 2012中的即时窗口,Int32是int型,Int64是long型。输出如下:
sizeof(int)
4
sizeof(Int32)
4
sizeof(Int64)
8
Int32
int
base {System.ValueType}: System.ValueType
MaxValue: 2147483647
MinValue: -2147483648
Int64
long
base {System.ValueType}: System.ValueType
MaxValue: 9223372036854775807
MinValue: -9223372036854775808
int
int
base {System.ValueType}: System.ValueType
MaxValue: 2147483647
MinValue: -2147483648
根据我的经验,这是一种惯例。我不知道在Int32上使用int的任何技术原因,但它是:
打字更快。 对于典型的c#开发人员来说更加熟悉。 默认visual studio语法高亮显示的不同颜色。
我特别喜欢最后一个。:)
int是一个c#关键字,是明确的。
大多数情况下,这并不重要,但有两件事与Int32相悖:
您需要有一个“using System;”语句。使用"int"不需要Using语句。 可以定义自己的名为Int32的类(这将是愚蠢和令人困惑的)。Int总是Int的意思。
推荐文章
- 如何返回一个文件(FileContentResult)在ASP。净WebAPI
- 如何在使用ASP时更改表名。净身份?
- 在Visual Studio中设置“首选32位”的目的是什么?它实际上是如何工作的?
- 在c#中从URI字符串获取文件名
- 检查SqlDataReader对象中的列名
- 如何将类标记为已弃用?
- c# 8支持。net框架吗?
- Linq-to-Entities Join vs GroupJoin
- 为什么字符串类型的默认值是null而不是空字符串?
- 在list中获取不同值的列表
- 组合框:向项目添加文本和值(无绑定源)
- 如何为ASP.net/C#应用程序配置文件值中的值添加&号
- 从System.Drawing.Bitmap中加载WPF BitmapImage
- 如何找出一个文件存在于c# / .NET?
- 为什么更快地检查字典是否包含键,而不是捕捉异常,以防它不?