zoukankan      html  css  js  c++  java
  • c#中的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语义。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhangjie_xiaoke/archive/2008/03/05/2151399.aspx

  • 相关阅读:
    克如斯卡尔 P1546
    真正的spfa
    第四课 最小生成树 要点
    关于vscode中nullptr未定义
    cmake学习笔记
    python学习笔记
    (BFS 图的遍历) 2906. kotori和迷宫
    (图论基础题) leetcode 997. Find the Town Judge
    (BFS DFS 并查集) leetcode 547. Friend Circles
    (BFS DFS 图的遍历) leetcode 841. Keys and Rooms
  • 原文地址:https://www.cnblogs.com/googlegis/p/2979056.html
Copyright © 2011-2022 走看看