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

探讨c#中的unchecked是什么意思,起什么作用?

    来源: 互联网  发布时间:2014-10-21

    本文导语:  Checked与Unchecked     对于因为整数类型参与算术操作和类型转换时产生的“溢出异常”——System.OverflowException,在某些算法来讲不算真正的“异常”,相反这种溢出常常为程序所用。C#通过引入checked和unchecked关键字来控制这种...

Checked与Unchecked    
对于因为整数类型参与算术操作和类型转换时产生的“溢出异常”——System.OverflowException,在某些算法来讲不算真正的“异常”,相反这种溢出常常为程序所用。C#通过引入checked和unchecked关键字来控制这种特殊情况的需求。它们都可以加于一个语句块前(如:checked{……}),或者一个算术表达式前(如:unchecked(x+y)),其中加checked标志的语句或表达式如果发生算术溢出,则抛出System.OverflowException类型的异常,而加unchecked标志的语句发生算术溢出时,则不抛出异常。下面是一个示例:  
代码如下:

  using    System;    
     class    Test{    
     static    void    Main()    {    
     int    num1=100000,num2=100000,    
     result=0;    
     checked{    try    {    result=    num1    *    num2;}    
     catch(System.Overflo2wException    e){    Console.WriteLine(e);    }    
     finally{    Console.WriteLine(result);}    
     }    
     unchecked{    try    {    result=    num1    *    num2;}    
     catch(System.OverflowException    (e){    Console.WriteLine(e);}    
     finally{    Console.WriteLine(result);}    
     }    
     }    
     }

程序输出:    
代码如下:
         
System.OverflowException:    Arithmetic    operation    resulted    in    an    overflow.    
at    Test.Main()    
0    
1410065408    

可以看到同样的算术操作,用checked抛出了溢出异常,而unchecked只是将溢出的位丢弃而得到剩下的32位组成的十进制整数值。值得指出的是可以用“/checked”编译器选项指定整个文件的代码为checked语义,如果没有指定则默认为unchecked。如果同时在程序代码中指定checked或unchecked标志,又有了checked编译器选项,则除了标志为unchecked的代码外,其余的都有checked语义。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 会javabean,用jbuiler的请进,呵呵,大家探讨探讨,参与者都有分!!
  • jsp/servlet开发网站,客户端打印解决方案探讨!
  • 厦门LINUX技术探讨群
  • 大家可以探讨一下Servlet的设计模式么?
  • 探讨Oracle中的&号问题
  • 大家来探讨!
  • 探讨如何学习j2ee!
  • 探讨下启动盘的制作原理!
  • 高分探讨小问题--关于jsp
  • [探讨]文件系统的控制问题
  • 欢迎高手指教,菜鸟来探讨!
  • 关于一个系统的探讨~
  • jbuilder6不稳定!请有使用经验的来探讨一下是什么原因?
  • C/C++代码格式工具探讨
  • 请教--父进程监控子进程,欢迎高手进来探讨!!!
  • 探讨下linux下pam验证中的crypt
  • 一个问题与大家探讨,各位请进,来者有分!!!
  • 关于学习Linux的一个问题(非技术的探讨)
  • makefile eval 问题--共同探讨
  • Linux Makefile探讨,产生的.d文件是.c文件的依赖?


  • 站内导航:


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

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

    浙ICP备11055608号-3