• <em id="ommgs"></em>
    <dd id="ommgs"><center id="ommgs"></center></dd>

    1. <em id="ommgs"><acronym id="ommgs"><u id="ommgs"></u></acronym></em>
      首 頁IT知識庫翔宇問吧收藏本站
      當前位置:翔宇亭IT樂園IT知識庫C#專區C#基礎

      C#中的checked、unchecked操作符

      減小字體 增大字體 作者:佚名  來源:轉載整理  發布時間:2014-10-26 22:33:20

      在C#中checked和unchecked操作符用于控制檢查整型算術運算時是否溢出。

      下列運算參與了checked和unchecked檢查(操作數均為整數):

      1) 預定義的++和――一元運算符。

      2) 預定義的-一元運算符。

      3)預定義的+、-、×、/等二元操作符。

      4)從一種整型到另一種整型的顯示數據轉換。

      checked與unchecked

      當上述整型運算產生一個目標類型無法表示的大數時,可以有相應的處理方式:

      1、使用checked

      若運算是常量表達式,則產生編譯錯誤:The Operation overflows at complie time in checked mode.
      若運算是非常量表達式,則運行時會拋出一個溢出異常:OverFlowException異常

      2、使用unchecked

      無論運算是否是常量表達式,都沒有編譯錯誤或是運行時異常發生,只是返回值被截掉不符合目標類型的高位。

      3、既未使用checked又未使用unchecked

      若運算是常量表達式,默認情況下總是進行溢出檢查,同使用checked一樣,會無法通過編譯。
      若運算是非常量表達式,則是否進行溢出檢查,取決于外部因素,包括編譯器狀態、執行環境參數等。

      下例說明了checked和unchecked操作符在非常量表達式中的使用方法:

      class Test
      {
         static int x = 1000000;
         static int y = 1000000;
         static int F()
         {
            return checked(x*y); //運行時拋出OverFlowException異常
         }
         static int G()
         {
            return unchecked(x*y); //截去高位部分,返回-727379968
         }
         static int H()
         {
            return x*y; //依賴于編譯器的默認設置,一般是不檢查
         }
      }

      checked和unchecked操作符在常量表達式中的使用方法:

      class Test
      {
         const int x = 1000000;
         const int y = 1000000;
         static int F()
         {
            return checked(x*y); //編譯錯誤,編譯無法通過
         }
         static int G()
         {
            return unchecked(x*y); //截去高位部分,返回-727379968
         }
         static int H()
         {
            return x*y; //編譯錯誤,編譯無法通過
         }
      }

      Tags:C# 操作符

      知識評論評論內容只代表網友觀點,與本站立場無關!

         評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論
      請注意用語文明且合法,不要發布帶有攻擊性、侮辱性的言論,謝謝合作!
      用戶名: 查看更多評論
      分 值:100分 90分 80分 70分 60分 40分 20分
      內 容:
      驗證碼:
      關于本站 | 網站幫助 | 廣告合作 | 網站聲明 | 友情連接 | 網站地圖
      本站部分內容來自互聯網,如有侵權,請來信告之,謝謝!
      Copyright © 2007-2020 biye5u.com. All Rights Reserved.
      japanese日本熟妇photo