如果我使用' int'那么可能会出现什么样的内存相关问题?而不是'短'?这是一个大错误吗?
答案 0 :(得分:1)
在C#中,short可以保持-32,768到32,767之间的数字。但是整数可以将数字从-2,147,483,648保持到2,147,483,647。这种情况的原因是整数是32位变量而短路是16位变量,即整数在内存中占用4个字节而短路在内存中占用2个字节。如果适当使用短数据类型,则在执行期间可以在计算机中保存2字节内存。
如果您尝试存储的数字大于32767或小于-32,768,则会出现溢出,无法正确访问您的数据。
提示:如果您要存储小数字,并且您确定该值不会大于32,767(在这种情况下可能输入循环变量),您可以使用short并保存2个字节的内存。
答案 1 :(得分:0)
在绝大多数情况下,我不会使用int
而不是short
来调用一个巨大的错误(或者甚至一定是错误)。
正如其他人所指出的那样,主要区别在于int
为4个字节而short
仅为2.在大多数情况下,使用short
代替{{1}是一种微观优化;当然,有一些例外(例如,你在一个非常受内存限制的环境中工作,你正在做一些需要大量内存并且使用short而不是int的东西会导致大量内存记忆保存等。)。
这一点可能有点争议,但在某些情况下使用short而不是int可以提高代码清晰度(如果你只是期望整数在相对较小的范围内),但这通常不是案件。
答案 2 :(得分:-1)
INT是对Int32的直接引用 范围-2,147,483,648至2,147,483,647
short指定为16Bit 范围-32,768至32,767
根据输入值的范围可以认为是错误,如果短路有足够的范围,最好使用Int16 / short来节省内存。