当前位置:  编程技术>.net/c#/asp.net

C#入门之checked和unchecked的区别实例解析

    来源: 互联网  发布时间:2014-11-01

    本文导语:  本文以实例形式对比测试了C#中checked和unchecked的区别,对于C#初学者来说有很好的借鉴参考价值。具体分析如下: int类型的最大值是2147483647,2个最大值相加就会超出int的最大值,即出现溢出。 class Program { static void Ma...

本文以实例形式对比测试了C#中checked和unchecked的区别,对于C#初学者来说有很好的借鉴参考价值。具体分析如下:

int类型的最大值是2147483647,2个最大值相加就会超出int的最大值,即出现溢出。

  class Program
  {
    static void Main(string[] args)
    {
      int y = 2147483647;
      int x = 2147483647;
      int z = x + y;
      Console.WriteLine(z.ToString());
      Console.ReadKey();
    }
  }

把断点打在 int z = x + y;代码行,单步调试,可以看到z的值为-2。因为int类型的最大值是2147483647,x + y超出了最大值,出现了溢出。

程序运行效果如下图所示:

一、使用checked:

如果我们想让编译器帮我们判断是否溢出,就使用checked关键字。

  class Program
  {
    static void Main(string[] args)
    {
      int y = 2147483647;
      int x = 2147483647;
      int z = checked(x + y);
    }
  }

运行后抛出溢出异常,运行结果如下图所示:

如果我们想手动捕获并打印异常,应该这样写:

  class Program
  {
    static void Main(string[] args)
    {
      int y = 2147483647;
      int x = 2147483647;
      try
      {
        int z = checked(x + y);
      }
      catch (OverflowException ex)
      {
        Console.WriteLine(ex.Message);
      }
      Console.ReadKey();
    }
  }

运行结果如下图所示:

二、使用unchecked:

使用unchecked不会抛出溢出异常。

  class Program
  {
    static void Main(string[] args)
    {
      int y = 2147483647;
      int x = 2147483647;
      int z = unchecked(x + y);
      Console.WriteLine(z.ToString());
      Console.ReadKey();
    }
  }

结果为:-2


    
 
 

您可能感兴趣的文章:

  • C# Dictionary操作范例(入门新手参考)
  • 希望了解java,能推荐一个好的开发工具和一本好的入门书籍吗?我以前直到现在都在用VC,接下来想在C#和java中选一个做为第二语言。
  • C#入门之索引器使用实例
  • C#实现GZip压缩和解压缩入门实例
  • C#入门学习笔记之C#匿名方法
  • c#创建windows服务入门教程实例
  • C#入门学习笔记之事件和委托的实例
  • c#入门之类型转换详解
  • C# BackgroundWorker组件学习入门介绍
  • 学习C# Socket入门实例代码
  • c# 接口interface基础入门小例子
  • c#入门之分支语句使用方法(三元运算符、if语句、switch语句)
  • c#入门之实现简易存款利息计算器示例
  • c#入门之循环语句使用详解(for循环、do/while)
  • C#反射实例学习入门及注意事项
  • C# 对XML操作入门实例
  • c#操作xml文件的实例(入门参考)
  • c#入门之枚举和结构体使用详解(控制台接收字符串以相反的方向输出)
  • c# 通用文件上传类(适合入门)
  • 在X分钟内学会C#的入门简明教程
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php读取mysql数据库入门实例
  • 请问谁有《JBuilder6实例入门》,海洋出版社的,黄色封面,我的光盘坏了一部分,求救!
  • php读取mysql入门实例
  • php读取sqlite数据库入门实例
  • destoon入门教程与技巧实例
  • Android入门之LinearLayout、AbsoluteLayout的用法实例讲解
  • php读取sqlite入门实例
  • destoon二次开发入门实例教程
  • php入门实例查询数据库记录
  • php导出数据为csv文件(入门实例)
  • Android入门简单实例
  • java操作mysql入门代码实例(含插入、更新和查询)
  • Java网络编程基础教程之Socket入门实例
  • Android入门之Gallery用法实例解析
  • Android入门之TabHost与TabWidget实例解析
  • Android入门之AlertDialog用法实例分析
  • Android入门之Gallery+ImageSwitcher用法实例解析
  • php iis7站长之家
  • MySQL中触发器入门简单实例与介绍
  • jquery.qtip插件简单入门实例
  • 关于docker入门教程
  • JAVA 怎么入门?
  • Python下Html/xml解析库Beautiful Soup快速入门教程
  • linux入门书籍?
  • 谢谢推荐几本关于JAVA入门好书?
  • 求KDevelop 入门教程
  • Vxworks 嵌入式操作系统入门请教,请多指点!
  • 我刚开始学linux,哪位有入门的视频教学呀!
  • ECMAScript 6入门
  • 请大家介绍一下java BEAN的入门读物吧
  • 请推荐几本java的入门和提高书籍.


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3