日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

C# checked、unchecked操作符

發(fā)布時(shí)間:2023/11/27 生活经验 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# checked、unchecked操作符 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
checked和unchecked操作符用于整型算術(shù)運(yùn)算時(shí)控制當(dāng)前環(huán)境中的溢出檢查。下列運(yùn)算參與了checked和unchecked檢查(操作數(shù)均為整數(shù)): 1)? 預(yù)定義的++和――一元運(yùn)算符。 2)? 預(yù)定義的-一元運(yùn)算符。 3)? 預(yù)定義的+、-、×、/等二元操作符。 4)? 從一種整型到另一種整型的顯示數(shù)據(jù)轉(zhuǎn)換。
當(dāng)上述整型運(yùn)算產(chǎn)生一個(gè)目標(biāo)類型無法表示的大數(shù)時(shí),可以有相應(yīng)的處理方式:
(一)使用checked 若運(yùn)算是常量表達(dá)式,則產(chǎn)生編譯錯(cuò)誤:The operation overflows at complie time in checked mode. 若運(yùn)算是非常量表達(dá)式,則運(yùn)行時(shí)會(huì)拋出一個(gè)溢出異常:OverFlowException異常
(二)使用unchecked 無論運(yùn)算是否是常量表達(dá)式,都沒有編譯錯(cuò)誤或是運(yùn)行時(shí)異常發(fā)生,只是返回值被截掉不符合目標(biāo)類型的高位。
(三)既未使用checked又未使用unchecked 若運(yùn)算是常量表達(dá)式,默認(rèn)情況下總是進(jìn)行溢出檢查,同使用checked一樣,會(huì)無法通過編譯。 若運(yùn)算是非常量表達(dá)式,則是否進(jìn)行溢出檢查,取決于外部因素,包括編譯器狀態(tài)、執(zhí)行環(huán)境參數(shù)等。
下例說明了checked和unchecked操作符在非常量表達(dá)式中的使用方法: class Test { static int x = 1000000; static int y = 1000000; static int F() { return checked(x*y);???? //運(yùn)行時(shí)拋出OverFlowException異常 } static int G() { return unchecked(x*y);? //截去高位部分,返回-727379968 } static int H() { return x*y;???? //依賴于編譯器的默認(rèn)設(shè)置,一般是不檢查 } }
checked和unchecked操作符在常量表達(dá)式中的使用方法: class Test { const int x = 1000000; const int y = 1000000; static int F() { return checked(x*y);???? //編譯錯(cuò)誤,編譯無法通過 } static int G() { return unchecked(x*y);? //截去高位部分,返回-727379968 } static int H() { return x*y;???? //編譯錯(cuò)誤,編譯無法通過 } } ?

總結(jié)

以上是生活随笔為你收集整理的C# checked、unchecked操作符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。