【问题标题】:Cast error in C# for datatype short [duplicate]C# 中用于数据类型 short 的转换错误 [重复]
【发布时间】:2015-09-03 14:21:02
【问题描述】:

一个关于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; 将编译为十进制)

【问题讨论】:

    标签: c# type-conversion


    【解决方案1】:

    修改如下,

    short key = i + (short)1;
    

    short key = (short) (i + (short)1);
    

    原因是,short + short 的任何添加都可能溢出短距离。因此这需要显式转换。

    【讨论】:

    • 谢谢。你对这部分问题也有答案吗? “在某个地方是否有一个很好的表格显示不同类型及其初始化程序快捷方式?(如 var f = 1M; 将编译为十进制)”
    • 不,Thomas,我找不到一个可以让您获得综合结果的位置。我找到的最接近的链接是这个 - msdn.microsoft.com/en-us/library/364x0z75.aspx
    【解决方案2】:

    试试这样:

    short key = (short) (i + (short)1);
    

    另请注意,Int16 变量在添加时会转换为 Int32。

    您也可以阅读 Eric Liperts 的回答:

    【讨论】:

    • 谢谢。你对这部分问题也有答案吗? “在某处是否有一个很好的表格显示不同类型及其初始化快捷方式?(如 var f = 1M; 将编译为十进制)”
    • @thomas:- 我没明白。你能问一个单独的问题来详细说明吗?
    猜你喜欢
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 2011-08-18
    • 2011-08-11
    相关资源
    最近更新 更多