写代码过程中遇到“类型转换小问题”
我发现一个怪事:
解决办法是:b=(Byte)(b+2); 输出 4;上面当然很好理解,问题是:如果改成b+=2;输出结果是4。如果是类型转换问题,上面可以解决,但下面也就存在同样的问题,关键是b+=2;却能够通过编译!
1
static void Main()
2
{
3
Byte b=2;
4
b=b+2;
5
Console.WriteLine(b);
6
}
调试输出结果是:无法将类型“int”隐式转换为"Byte"![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
解决办法是:b=(Byte)(b+2); 输出 4;上面当然很好理解,问题是:如果改成b+=2;输出结果是4。如果是类型转换问题,上面可以解决,但下面也就存在同样的问题,关键是b+=2;却能够通过编译!