转换为int16,int32,int64 - 您如何知道选择哪一个?

Vid*_*dar 8 c# integer typeconverter

我经常需要转换一个retreived值(通常作为字符串) - 然后将其转换为int.但是在C#(.Net)中,您必须选择int16,int32或int64 - 当您不知道检索到的数字有多大时,您如何知道选择哪一个?

Tim*_*uri 20

这里所有提到声明Int16拯救公羊的人都应该得到一个downvote.

您的问题的答案是使用关键字"int"(或者如果您喜欢它,请使用"Int32").

这可以为您提供高达24亿的数字...此外,32位处理器将更好地处理这些内容...而且(如果您最重要的原因)是,如果您计划在几乎任何原因使用该int ...它可能需要是一个"int"(Int32).

在.Net框架中,99.999%的数字字段(即整数)是"整数"(Int32).

示例:Array.Length,Process.ID,Windows.Width,Button.Height等等100万次.

编辑:我意识到我的脾气暴躁会让我失望......但这是正确的答案.

  • 为什么你会回答说明Int16占用的内存少于Int32?它通常会这样做,如果你需要在内存中存储大量的整数,这可能是一个重要的因素.PS.我实际上很享受你的脾气暴躁,并没有为此付出代价.:) (3认同)
  • 声明并存储在堆上或堆栈上的每个变量都与一个与操作系统和硬件内存大小一致的边界对齐,即在运行32位Windows的32位机器上,即使短的4个字节的存储空间... (2认同)

cha*_*rit 9

只是想补充一点......我记得在.NET 1.1时代,编译器已经过优化,因此'int'操作实际上比字节或短操作更快.

我相信它今天仍然存在,但我现在正在进行一些测试.


编辑:我有一个惊喜发现:short(s)的加,减和乘法运算实际上返回int!