请单击以进行评分并提供反馈
MSDN
MSDN Library
Visual C#
C# 参考
C# 关键字
语句类型
 unchecked

  开启低带宽视图
此页面仅适用于
Microsoft Visual Studio 2005/.NET Framework 2.0

同时提供下列产品的其他版本:
C# 语言参考
unchecked(C# 参考)

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

在未检查的上下文中,如果表达式产生目标类型范围之外的值,则结果被截断。例如:

          unchecked
{
    int val = 2147483647 * 2;
}

因为上面的计算在 unchecked 块中执行,所以结果对于整数来说太大这一事实被忽略,并且 val 被赋予值 -2。默认情况下,启用溢出检测,这与使用 checked 具有相同的效果。

在上面的示例中,如果省略 unchecked,将产生编译错误,因为表达式使用常数,结果在编译时是已知的。unchecked 关键字还取消对非常数表达式的溢出检测,这是为了避免在运行时导致 OverflowException

unchecked 关键字还可以用作运算符,如下所示:

public int UncheckedAdd(int a, int b)
{
    return unchecked(a + b);
}

此示例通过在常数表达式中使用 unchecked,显示如何使用 unchecked 语句。

// statements_unchecked.cs
using System;

class TestClass 
{
    const int x = 2147483647;   // Max int 
    const int y = 2;

    static void Main() 
    {
        int z;
        unchecked 
        {
            z = x * y;
        }
        Console.WriteLine("Unchecked output value: {0}", z);
    }
}

输出

Unchecked output value: -2

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

  • 5.3.3.2 Block 语句、checked 和 unchecked 语句

  • 7.5.12 checked 和 unchecked 运算符

  • 8.11 checked 和 unchecked 语句

社区内容   什么是社区内容?
添加新内容 RSS  批注
test      testwhat   |   编辑   |   显示历史记录
test
标记为 ContentBug
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利  |  商标  |  隐私权声明
Page view tracker