2.检查一大块代码:
unchecked
和checked对应,还有一个unchecked关键字,用来取消检查。
也是两种使用;
1.作为运算符:
复制代码 代码如下:
int a = int.MinValue;
int c = unchecked(a--);
这样子就不会抛异常了
2.检查一大块代码
复制代码 代码如下:
unchecked
{
int a = int.MinValue;
int c = a--;
}
也不抛异常:
2。点击“Build”,再点击“Advanced”
3。在打开的对话框中,把“Check for arithmetic overflow/underflow”打上勾
几个注意
1.checked语句只对当前上下文中的代码有效,即不对调用的函数内部做检查。
复制代码 代码如下:
static void Main(string[] args)
{
checked
{
TestFun();
}
}
static void TestFun()
{
int a = int.MinValue;
int c = a--;
}
这段代码中。不会跑异常,因为checked关键字没有影响到TestFun内部。如果需要这么做的话,要么在TestFun内部加checked关键字,要么打开全局开关(加编译参数/checked或者VS中设置)。
2.checked,unchecked关键字不检查左移和右移是否溢出。
复制代码 代码如下:
static void Main(string[] args)
{
checked
{
int a = int.MinValue;
int c = a>>1;
}
}
执行不会抛异常:
3.为了性能考虑,建议Debug时做检查,Release时不做检查。