short i=0;i+=1;这不报错为什么?
像short i=0;i=i+1;就会报错。
------解决方案--------------------
老问题 以前回答过 再次懒的写
原帖:http://topic.csdn.net/u/20120213/15/c5279a05-ff81-4c5e-a408-bc0d780f1e2c.html
这是我给的答案
1. short s1=1;s1=s1+1;为什么是错的
在进行算法运算的时候,内部CLR的虚拟机只能进行最低32位的运算 也就是int
所以不管你是short+short 还是byte+short 最终都会被提升扩展成Int32 也就是int
也就是说s1+1最后是int型 但左边是s1是short型 很明显一桶水倒到一杯水里会造成数据丢失 所以是错的
你必须要显示转换才可以
C# code
s1 = (short)(s1 = 1);