short s;
s = (EitherTrueOrFalse()) ? 0 : 1;
这失败了:
错误 CS0266:无法将类型“int”隐式转换为“short”。存在显式转换(您是否缺少演员表?)
谁能解释为什么会这样?我唯一能想到的是编译器不查看第二个值并且不知道两者之间的范围,在这种情况下我写了类似的东西
short s;
s = (EitherTrueOrFalse()) ? 0 : 65000;
正确的?唯一的解决办法是丑陋的演员阵容?
此外,似乎 C# 没有短类型的类型后缀。这是一个非常严重的监督 IMO。否则,这将是一个解决方案......