任何人都可以解释这个C#quirk吗?

时间:2017-10-03 20:46:52

标签: c# visual-studio-2015 c#-interactive

我正在使用MS Visual Studio Enterprise 2015,我找到了一个奇怪的问题。现在,我不是要求如何解决出现的错误,但我想知道为什么 C#以这种方式表现。

此代码段来自C#Interactive,但它在编辑器中的行为也相同:

short num;
num = 0
//num = 0
num = 4
//num = 4
num = true ? 1 : 2
//num = 1
num = false ? 1 : 2
//num = 2
bool flag = true;
num = flag ? 1 : 2

最后一行会导致错误:

  

(1,7):错误CS0266:无法将类型'int'隐式转换为'short'。一个       存在显式转换(您是否错过了演员?)

基本上,将数字分配给短数字(例如0或4)没有问题,并且在你给它一个可变条件之前,字面上解释三元是没有问题的。这是什么交易?

0 个答案:

没有答案