<分区>
为什么是
byte someVar;
someVar -= 3;
有效但是
byte someVar;
someVar = someVar - 3;
不是吗?
<分区>
为什么是
byte someVar;
someVar -= 3;
有效但是
byte someVar;
someVar = someVar - 3;
不是吗?
最佳答案
令人惊讶的是,当您对字节执行操作时,计算将使用 int
值完成,字节首先隐式转换为 (int)
。 short
也是如此,类似地,float
在进行浮点运算时会向上转换为 double
。
第二个片段相当于:
byte someVar;
someVar = (int) someVar - 3;
因此,您必须将结果转换回 (byte)
以使编译器接受分配。
someVar = (byte) (someVar - 3);
关于C# int 字节转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3641274/