short s1=1;
s1=s1+1; //错误 1 无法将类型“int”隐式转换为“short”。存在一个显式转换(是否缺少强制转换?)
s1+=1; //运行通过为什么会这样呢?有什么区别?
s1=s1+1; //错误 1 无法将类型“int”隐式转换为“short”。存在一个显式转换(是否缺少强制转换?)
s1+=1; //运行通过为什么会这样呢?有什么区别?
调试欢乐多
至于 s1+=1; 这种写法会自动进行隐式转吧 (自动将1转化成了short)应该是C#语言的一种约定 或者是编译器?
s1+=1等效于 s1=(short)(s1+1),所以不会报错
s1=s1+1;是加法运算,不会自动转换为int类型,所以就错了。