我有以下代码:
foreach (byte b in bytes)
{
byte inv = byte.MaxValue - b;
// Add the new value to a list....
}
当我这样做时,会出现以下错误:
无法隐式将类型'int'转换为'byte'。存在显式转换(是否缺少强制转换?)
该语句的每个部分都是一个字节。为什么C#要将byte.MaxValue - b
转换为int?
难道不能在不进行强制转换的情况下完成吗?(即:我不想这样做:byte inv = (byte) (byte.MaxValue - b);
)
int-int
时,它不会产生int64
。为什么在byte-byte
时自动提升类型? - Vaccano