因为数据溢出(超出short能表示的范围),被重置为-32768.

解决方案 »

  1.   

    是上界溢出,但还在short表示的范围内
    在c#中,short 即System.Int16,表示16位有符号整数。范围为-32768 到 32767 
    但32767为short能表示的最大正整数,其二进制为:0111 1111 1111 1111
    加1后为:1000 0000 0000 0000,超出上界,转换为(0x7fff-0xffff),正好是 -32768
      

  2.   

    jjcccc已经解释的很清楚了
    加1后为:1000 0000 0000 0000,超出上界,转换为(0x7fff-0xffff),正好是 -32768
    不会抛出异常
      

  3.   

    但若这样,就抛出异常了:
    short x=32766;
    x++;
    Console.WriteLine(x);
    checked
    {x++;}或者打开编译器的checked开关,也会抛出异常。