国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#中的checked、unchecked操作符

2019-11-18 19:14:36
字體:
來源:轉載
供稿:網友

checked和unchecked操作符用于整型算術運算時控制當前環境中的溢出檢查。下列運算參與了checked和unchecked檢查(操作數均為整數):

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

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

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

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


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


(一)使用checked

若運算是常量表達式,則產生編譯錯誤:The Operation overflows at complie time in checked mode.

若運算是非常量表達式,則運行時會拋出一個溢出異常:OverFlowException異常


(二)使用unchecked

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


(三)既未使用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;     //編譯錯誤,編譯無法通過

}

}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 靖远县| 莒南县| 丰城市| 大新县| 交城县| 即墨市| 镶黄旗| 都兰县| 莱芜市| 谢通门县| 湄潭县| 射阳县| 古蔺县| 柯坪县| 芮城县| 邮箱| 汕头市| 湖南省| 三门峡市| 香格里拉县| 东辽县| 运城市| 工布江达县| 堆龙德庆县| 大港区| 叙永县| 巧家县| 保定市| 上饶县| 麟游县| 新竹县| 海城市| 西林县| 沾益县| 合作市| 茶陵县| 邻水| 海淀区| 浦城县| 清苑县| 万荣县|