• C#关键字 unchecked与checked


    unchecked 关键字用于取消整型类型的算术运算和转换的溢出检查。

    checked和unchecked,都可以加于一个语句块前或者一个算术表达式前。

    加checked标志的语句或表达式如果发生算术溢出,则抛出System.OverflowException类型的异常,而加unchecked标志的语句发生算术溢出时,则不抛出异常。

    在未经检查的上下文中,如果表达式生成的值超出目标类型的范围,则不会标记溢出。 例如,由于以下示例中的计算在 unchecked 块或表达式中执行,因此将忽略计算结果对于整数而言过大的事实,并且向 int1 赋予值 -2,147,483,639。

    unchecked
    {
        int1 = 2147483647 + 10;
    }
    int1 = unchecked(ConstantMax + 10);
    

    如果删除 unchecked 环境,会发生编译错误。 由于表达式的所有项都是常量,因此可在编译时检测到溢出。

    在编译时和运行时,默认不检查包含非常数项的表达式。

    由于检查溢出需要时间,因此在没有溢出风险的情况下使用取消检查的代码可能会提高性能。 但是,如果存在溢出的可能,则应使用启用了检查的环境。

  • 相关阅读:
    HDU 2116 Has the sum exceeded
    HDU 1233 还是畅通工程
    HDU 1234 开门人和关门人
    HDU 1283 最简单的计算机
    HDU 2552 三足鼎立
    HDU 1202 The calculation of GPA
    HDU 1248 寒冰王座
    HDU 1863 畅通工程
    HDU 1879 继续畅通工程
    颜色对话框CColorDialog,字体对话框CFontDialog使用实例
  • 原文地址:https://www.cnblogs.com/Seamless/p/15216409.html
Copyright © 2020-2023  润新知