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校验代码运行结果

使用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校验溢出抛出异常

简单的来说不使用check关键字做校验,当程序执行算术运算时值溢出且不报错不利于程序健壮性考虑也不利于BUG排查;使用了check关键字以后,可以第一时间捕获到c#抛出的异常并且进行问题排查修复。

最后修改:2022 年 09 月 30 日
免责声明:本站为个人博客,博客所发布的一切修改补丁、注册机和注册信息及软件的文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。访问和下载本站内容,说明您已同意上述条款。