我是C#的新手。
为什么使用这两种方法会得到不同的结果:
方法一
byte x = 255;
x = x + 1;
方法二
byte x = 255;
x += 1;
方法I会导致无法成功编译的错误。
S0266 C#不能将类型'int‘隐式转换为'byte’。存在显式转换(是否缺少强制转换?)
如果我添加了一个cast并写道
byte x = (byte)255;
x = x + 1;
这样,造型就变得多余了。
如果我写
byte x = 255;
x = x + (byte)1;
演员阵容也是多余的。
我该怎么做才能用方法I得到0的结果?
发布于 2018-09-27 06:57:33
将int转换为byte需要显式强制转换,因此您必须编写
byte x = 255;
x = (byte)(x + 1);
通常,隐式转换(不需要强制转换)是为无损类型转换保留的,而显式转换是为潜在的有损转换保留的,这是int到byte的情况。
https://stackoverflow.com/questions/52526962
复制相似问题