ushort操作抛出Int Cast错误

时间:2014-07-29 00:15:48

标签: c#

我刚写了一个程序(包括所有用户)来操纵数字,这是代码的一部分:

ushort digitSum = firstDigit + secondDigit + thirdDigit + fourthDigit;
ushort reverseNumber = fourthDigit + thirdDigit + secondDigit + firstDigit;
ushort lastDigitFirst = fourthDigit + firstDigit + secondDigit + thirdDigit;
ushort middleDigitsSwitched = firstDigit + thirdDigit + secondDigit + fourthDigit;

但是它给了我int cast错误。我搜查了一下,我认为这就是原因:

Why is ushort + ushort equal to int?

Why does C# throw casting errors when attempting math operations on integer types other than int?

看起来使用其他int类型执行操作需要强制转换,因为ushort + ushort = int。

我的问题:为什么我们有短裤和字节?当内存非常有限时,我们不得不担心使用哪种类型,但现在我们不得不担心吗?使用小于int的类型很烦人,我可以一直使用int和long吗?今天是否有较小类型的用例?

编辑:如何对这些进行强制转换?

1 个答案:

答案 0 :(得分:0)

  

今天是否有较小类型的用例?

是的,有一个案例。内存仍然有限,特别是在使用"大数据"时,使用short而不是int来节省一半的内存可能非常有价值,特别是如果您需要处理或存储数十亿项数据。

  

编辑:如何对这些进行强制转换?

您可以使用(ushort)形式的演员:

ushort digitSum = (ushort)(firstDigit + secondDigit + thirdDigit + fourthDigit);