int和System的区别是什么?Int16、系统。Int32和System。Int64,而不是它们的大小?
当前回答
他们确实是同义的,但是我发现他们之间的小区别,
1)创建enum时不能使用Int32
enum Test : Int32
{ XXX = 1 // gives you compilation error
}
enum Test : int
{ XXX = 1 // Works fine
}
2) Int32属于System声明。如果你不使用。在系统中,你会得到编译错误,但在int中不会
其他回答
int
它是c#中定义的基本数据类型。
它被映射到FCL类型的Int32。
它是一个值类型,表示System。Int32结构。
它是有符号的,长度为32位。
它具有最小值-2147483648和最大值+2147483647。
Int16
这是整柜型。
在c#中,short被映射为Int16。
它是一个值类型,表示System。Int16结构。
它带符号,长度为16位。
最小值为-32768,最大值为+32767。
Int32
这是整柜型。
在c#中,int被映射到Int32。
它是一个值类型,表示System。Int32结构。
它是有符号的,长度为32位。
它具有最小值-2147483648和最大值+2147483647。
Int64
这是整柜型。
在c#中,long被映射到Int64。
它是一个值类型,表示System。Int64结构。
它是有符号的,长度为64位。
它的最小值为-9,223,372,036,854,775,808,最大值为9,223,372,036,854,775,807。
唯一真正的区别是大小。这里所有的int类型都是带符号的整型值,大小不同
Int16: 2字节 Int32和int: 4字节 Int64: 8字节
Int64和其他的有一个小的区别。在32位平台上,分配给Int64存储位置不保证是原子的。对于所有其他类型都是保证的。
Int和int32是同一个(32位整数) Int16是短int(2字节或16位) Int64是长数据类型(8字节或64位)
根据Jeffrey Richter(.NET框架开发的贡献者之一)的书《CLR via c#》:
int是c#编译器允许的基本类型,而Int32是框架类库类型(适用于所有遵守CLS的语言)。事实上,int在编译时转换为Int32。
同时,
在c#中,长映射到系统。Int64,但是在不同的编程中 语言,long可以映射到Int16或Int32。事实上,c++ /CLI做到了 将long处理为Int32。 事实上,大多数(.NET)语言甚至不会将long视为关键字,也不会 编译使用它的代码。
我曾见过这位作者,以及许多关于. net的标准文献更喜欢FCL类型(例如。, Int32)到特定于语言的原语类型(即:, int),主要关注互操作性问题。
以上这些人的回答基本正确。Int, int16, int32…根据数据存储容量的不同而有所不同。但这就是为什么编译器必须处理这些问题——它是为了解决潜在的2038年问题。点击链接了解更多信息。 https://en.wikipedia.org/wiki/Year_2038_problem
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- 如何使用JSON确保字符串是有效的JSON。网
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 没有ListBox。SelectionMode="None",是否有其他方法禁用列表框中的选择?
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何在iis7应用程序池中设置。net Framework 4.5版本