我刚写了一个程序(包括所有用户)来操纵数字,这是代码的一部分:
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吗?今天是否有较小类型的用例?
编辑:如何对这些进行强制转换?
答案 0 :(得分:0)
今天是否有较小类型的用例?
是的,有一个案例。内存仍然有限,特别是在使用"大数据"时,使用short
而不是int
来节省一半的内存可能非常有价值,特别是如果您需要处理或存储数十亿项数据。
编辑:如何对这些进行强制转换?
您可以使用(ushort)
形式的演员:
ushort digitSum = (ushort)(firstDigit + secondDigit + thirdDigit + fourthDigit);