checked 不允许程序发生溢出
unchecked 允许程序发生溢出
在C#中 溢出 虽然被视为是一种错误,但溢出检查默认是关闭的。
checked 为检查类型是否会溢出。
Byte b=100;
b=checked((Byte)(b+200))
会抛出异常的原因是 checked检查到 (b+200)为int类型300 要转成(Byte)溢出.
而
b=(Byte)Checked(b+200)
这时
checked检测的是 int类型 300是否有溢出 所以(Byte)checked(b+200)不会报错
checked //开始一个checked块
{
Byte b=100;
b+=200; //该表达式会进行溢出检查
} //结束一个checked块