1.
在进行算法运算的时候,内部CLR的虚拟机只能进行最低32位的运算
所以不管你是short+short
也就是说s1+1最后是int型
你必须要显示转换才可以
s1 = (short)(s1 = 1);
2.s1+=1;为什么不报错
关于这个+=我以前也是一直认为和x=x+1是等效的
最好的证据就是看反编译后的代码啦
//Reflector反编译后
short s = 1;
s = (short) (s + 1);
1.
在进行算法运算的时候,内部CLR的虚拟机只能进行最低32位的运算
所以不管你是short+short
也就是说s1+1最后是int型
你必须要显示转换才可以
s1 = (short)(s1 = 1);
2.s1+=1;为什么不报错
关于这个+=我以前也是一直认为和x=x+1是等效的
最好的证据就是看反编译后的代码啦
//Reflector反编译后
short s = 1;
s = (short) (s + 1);