注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

unchecked(C# 参考)  

2011-03-15 16:03:42|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


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

  评论这张
 
阅读(555)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017