更新:2007 年 11 月

checked 关键字用于对整型算术运算和转换显式启用溢出检查。

默认情况下,如果表达式产生的值超出了目标类型的范围,则常数表达式将导致编译时错误,而非常数表达式在运行时计算并将引发异常。不过,如果通过编译器选项或环境配置在全局范围内取消了溢出检查,则可以使用 checked 关键字来启用此项功能。

请参见有关 unchecked 关键字用法的 unchecked 示例。

示例

此示例演示如何对非常数表达式使用 checked。在运行时会报告溢出。

C# 复制代码
class OverFlowTest
{

    static short x = 32767;   // Max short value
    static short y = 32767;

    // Using a checked expression 
    static int CheckedMethod()
    {
        int z = 0;
        try
        {
            z = checked((short)(x + y));
        }
        catch (System.OverflowException e)
        {
            Console.WriteLine(e.ToString());
        }
        return z;
    }

    static void Main()
    {
        Console.WriteLine("Checked output value is: {0}", 
                     CheckedMethod());
    }
}
/*
    Output:
    System.OverflowException: Arithmetic operation resulted in an overflow.
       at OverFlowTest.CheckedMethod()
    Checked output value is: 0
 */

C# 语言规范

有关更多信息,请参见 C# 语言规范中的以下各章节:

  • 5.3.3.2 Block 语句、checked 和 unchecked 语句

  • 7.5.12 checked 和 unchecked 运算符

  • 8.11 checked 和 unchecked 语句

请参见