抛出Int强制转换错误

本文关键字:转换 错误 Int 抛出 | 更新日期: 2023-09-27 18:15:33

我刚刚写了一个程序(所有字符)来操作数字,这是代码的一部分:

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类型转换错误。我搜索了一下,我认为这就是原因:

为什么ushort + ushort等于int?

为什么c#在对整数类型而不是整型进行数学操作时会抛出类型转换错误?

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

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

编辑:我该如何在这些短板上做石膏?

抛出Int强制转换错误

现在有更小类型的用例吗?

是的,这是有理由的。内存仍然是有限的,特别是在处理"大数据"时,因此使用short而不是int来节省一半的内存是非常有价值的,特别是当您需要处理或存储数十亿项数据时。

编辑:我该如何在这些短板上做石膏?

您可以使用(ushort):

形式的强制转换
ushort digitSum = (ushort)(firstDigit + secondDigit + thirdDigit + fourthDigit);