gpt4 book ai didi

c# - 为什么简单的算术在没有强制转换的情况下不起作用?

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:16 26 4
gpt4 key购买 nike

我刚刚发现这个:

ushort i = 4;
i = i + 4;

给出编译器错误:

Cannot implicitly convert type 'int' to 'ushort'. An explicit conversion exists (are you missing a cast?)



我必须这样修复它:
ushort i = 4;
i = (ushort)(i + 4);

这背后的原因是什么?使用所有数据类型不应该是显而易见且易于使用的吗?

最佳答案

字面量 4int , 所以 i + 4int此外,与 i晋升为 int .这个加法的结果也是int ,因此您不能将其分配给 ushort没有强制转换,因为 C# 不允许隐式转换为更小的数值类型。

关于c# - 为什么简单的算术在没有强制转换的情况下不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15706234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com