在C#中有一个关键字checked,它用来判断当前上下文中的数值运算和数值转换是否会溢出。如是是常量溢出,那在编译时就能发现;如果是变量溢出,那在运行时会抛出OverflowException。
数值运算有:++ — - (unary) + - * /
有了这个就不用担心数据溢出了。
checked
checked 有两种使用方法:
1.作为操作符来使用
int a = int.MinValue;
int c = checked(a--);
执行的时候会抛出异常:

2.检查一大块代码:
这样子会对里面所有的代码都做检查
checked
{
int a = int.MinValue;
int c = a--;
}
如下图:

unchecked
和checked对应,还有一个unchecked关键字,用来取消检查。
也是两种使用;
1.作为运算符:
int a = int.MinValue;
int c = unchecked(a--);
这样子就不会抛异常了

2.检查一大块代码
unchecked
{
int a = int.MinValue;
int c = a--;
}
也不抛异常:

/checked 和/checked-
