short s;
s = (EitherTrueOrFalse()) ? 0 : 1;
これは失敗します:
エラー CS0266: 型 'int' を 'short' に暗黙的に変換することはできません。明示的な変換が存在します (キャストがありませんか?)
なぜそうなのか、誰か説明できますか?私が考えることができる唯一のことは、次のようなものを書いた場合、コンパイラは2番目の値を見ておらず、2つの間の範囲を知らないということです.
short s;
s = (EitherTrueOrFalse()) ? 0 : 65000;
正しい?唯一の修正は醜いキャストですか?
また、C# には short 型の型サフィックスがないようです。それはかなり重大な見落としです。そうでなければ、それは解決策だったでしょう...