关于C#
中int和short的基本问题为什么我收到此代码的语法错误:
for (short i = 0; i < list.Length; i++)
{
short key = i + (short)1; //This is where I get error
//Can not implicitly convert 'int' to 'short'
//Some more code, dealing with this key...
}
有没有一个好的表格显示不同类型的初始化程序快捷方式?
(如var f = 1M;
将编译为十进制)
答案 0 :(得分:1)
修改以下内容,
short key = i + (short)1;
到
short key = (short) (i + (short)1);
原因是,短线+空头的任何增加可能会短距离溢出。因此这需要一个明确的演员。
答案 1 :(得分:1)
试试这样:
short key = (short) (i + (short)1);
另请注意,添加{}时会将Int16
个变量转换为Int32。
你也可以阅读Eric Liperts的回答: