版本:Visual Studio Professional 2013 Update 4
构建参数:首选32位为真
我不明白以下C#代码中的错误:
short iCount = 20;
short iValue = iCount + (short)1;
Run Code Online (Sandbox Code Playgroud)
将short添加到转换为short的int会导致以下错误:
无法将类型'int'隐式转换为'short'.存在显式转换(您是否错过了演员?)
上面的错误,在下面的例子中也可以看到,在这里完全有效:
short iCount = 20;
short iValue = iCount + 1;
Run Code Online (Sandbox Code Playgroud)
以下解决方法将删除错误:
short iCount = 20;
short iValue = (short)(iCount + 1);
Run Code Online (Sandbox Code Playgroud)
因此,"short + Int32 constant"形式的加法显然有效,结果是Int32,需要将其缩短.
有没有解释为什么第一个代码示例失败或者这是编译器错误?(在4次更新后我几乎无法相信)