短+短!=短?
short + short != short?
版本:Visual Studio Professional 2013 Update 4
构建参数:首选 32 位为真
我不明白以下 C# 代码中的错误:
short iCount = 20;
short iValue = iCount + (short)1;
将 short 添加到转换为 short 的 int 会导致以下错误:
Cannot implicitly convert type 'int' to 'short'. An explicit conversion exists (are you missing a cast?)
上述错误,也出现在以下情况中,在这里完全有效:
short iCount = 20;
short iValue = iCount + 1;
以下解决方法消除了错误:
short iCount = 20;
short iValue = (short)(iCount + 1);
所以 "short + Int32 constant" 形式的加法显然有效,结果是 Int32,需要转换为 short。
是否解释了第一个代码示例失败的原因,或者这是一个编译器错误? (4次更新后我简直不敢相信)
Int 是为其定义了 + 运算符的最小有符号类型,因此尝试在 short 上使用 + 会导致此类错误。
版本:Visual Studio Professional 2013 Update 4
构建参数:首选 32 位为真
我不明白以下 C# 代码中的错误:
short iCount = 20;
short iValue = iCount + (short)1;
将 short 添加到转换为 short 的 int 会导致以下错误:
Cannot implicitly convert type 'int' to 'short'. An explicit conversion exists (are you missing a cast?)
上述错误,也出现在以下情况中,在这里完全有效:
short iCount = 20;
short iValue = iCount + 1;
以下解决方法消除了错误:
short iCount = 20;
short iValue = (short)(iCount + 1);
所以 "short + Int32 constant" 形式的加法显然有效,结果是 Int32,需要转换为 short。
是否解释了第一个代码示例失败的原因,或者这是一个编译器错误? (4次更新后我简直不敢相信)
Int 是为其定义了 + 运算符的最小有符号类型,因此尝试在 short 上使用 + 会导致此类错误。