该unchecked
关键字已在 MSDN 库中解释为:
unchecked 关键字用于抑制整数类型算术运算和转换的溢出检查。在未经检查的上下文中,如果表达式产生的值超出目标类型的范围,则不会标记溢出。
根据定义,它适用于int
类型。
例如:
unchecked
{
int i=2147483647+10;
}
在这里它抑制了未经检查的块内的溢出。(应该是)
但是当我们将它应用于字节时它不起作用
byte b1=100,b2=100,b3;
unchecked
{
b3=b1+b2;//error here
}
因此,在未经检查的环境中编写的任何内容都应该被禁止。
为什么它给出编译时错误?
还是我根本不理解 unchecked 关键字?