Int32与Int64对比C#中的Int

Far*_*ruz 17 .net c#

可能重复:
假设32位整数

所以我在c#中读到int等于int32的地方.在64位机器上也是如此吗?我应该使用int32只是为了确保微软上没有人决定改变int的大小吗?

Rob*_*Day 27

int 是别名 Int32

long 是别名 Int64

它们的尺寸根本不会改变,只需使用您需要使用的尺寸.

在代码中使用它们与32位和64位机器无关

编辑:参考有关线程安全的评论.这是一个很好的问题和答案,详细说明您需要注意的任何问题. 在C#下使用Int64会对32位处理器造成危险

  • 实际上我相信在线程同步方面,32位和64位状态很重要,因为在32位处理器上读取Int64需要2个处理操作,而不仅仅是1,这可以导入线程安全. (4认同)
  • @Ian:对于公共语言规范中的int32读取,不保证原子性. (2认同)

Mic*_*tov 7

在32位和64位机器上:

  • long是64位,它是一个同义词System.Int64.
  • int是32位,它是一个同义词System.Int32.


Luk*_*keH 7

你不用担心.An intInt32一个32位有符号整数,无论​​您使用的平台如何,它都不会更改.

请参阅Microsoft C#规范(第1.3节),ECMA C#规范(第8.2.1节)和ECMA CLI规范(第8.2.2节).