checke关键字是c#中用于对整型类型算术运算和转换显式启用溢出检查,checked运算符在检测到数值溢出时抛出一个OverflowException异常,且checked运算符可以用于++, --, -, +, -, *, /,也可以用于整数类型之间的显示转换,例如int转short、long转int等。如果不选择使用check关键字,则会出现数值溢出且没有任何报错;使用check关键字,当出现数值溢出时,会抛出报错信息。
不使用check校验代码
public class Program
{
private static void Main(string[] args)
{
var test_int = int.MaxValue;
Console.WriteLine("未进行check校验,超过int最大值,溢出为负数且不报错 " + (test_int + 1));
Console.ReadLine();
}
}
使用check校验代码
public class Program
{
private static void Main(string[] args)
{
var test_int = int.MaxValue;
Console.WriteLine("使用check校验,超过int最大值,自动抛出异常 " + checked(test_int + 1));
Console.ReadLine();
}
}
简单的来说不使用check关键字做校验,当程序执行算术运算时值溢出且不报错不利于程序健壮性考虑也不利于BUG排查;使用了check关键字以后,可以第一时间捕获到c#抛出的异常并且进行问题排查修复。