亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

使用checked語句防止數據溢出的解決方法

2020-01-24 03:19:21
字體:
來源:轉載
供稿:網友
在C#中有一個關鍵字checked,它用來判斷當前上下文中的數值運算和數值轉換是否會溢出。如是是常量溢出,那在編譯時就能發現;如果是變量溢出,那在運行時會拋出OverflowException。
數值運算有:++   ―   - (unary)   +   -   *   /

有了這個就不用擔心數據溢出了。

checked
checked 有兩種使用方法:
1.作為操作符來使用
復制代碼 代碼如下:

int a = int.MinValue;
int c = checked(a--);

執行的時候會拋出異常:

image

2.檢查一大塊代碼:
這樣子會對里面所有的代碼都做檢查
復制代碼 代碼如下:

checked
{
    int a = int.MinValue;
    int c = a--;
}

如下圖:

image

unchecked
和checked對應,還有一個unchecked關鍵字,用來取消檢查。
也是兩種使用;
1.作為運算符:

復制代碼 代碼如下:

int a = int.MinValue;
int c = unchecked(a--);

這樣子就不會拋異常了

image

2.檢查一大塊代碼

復制代碼 代碼如下:

unchecked
{
    int a = int.MinValue;
    int c = a--;
}

也不拋異常:

image

/checked 和/checked-
如果代碼里總是要寫這么多checked語句是不是很煩?如果能有一個編譯參數就好,只有設置了就都會檢查。微軟也想到了這個,它提供了一個/checked 參數來做,也提供了一個/checked-來取消。
•溢出檢查 /checked,也可以是/checked+
•溢出不檢查 /checked-
當然,你想取消所有的檢查也是可以的,命令行參數是/checked-
復制代碼 代碼如下:

csc t2.cs /checked

其中csc是編譯器csc.exe , t2.cs 是被編譯的代碼文件。
我想很多人是用Visual Studio吧。VS里也是可以設置的。
步驟如下,我以VS2010為例,(VS2005,2008差不多)
1。在工程上點右鍵,選擇菜單Properties

image

2。點擊“Build”,再點擊“Advanced”

image

3。在打開的對話框中,把“Check for arithmetic overflow/underflow”打上勾

image

幾個注意
1.checked語句只對當前上下文中的代碼有效,即不對調用的函數內部做檢查。

復制代碼 代碼如下:

static void Main(string[] args)
{
    checked
    {
        TestFun();
    }
}
static void TestFun()
{
    int a = int.MinValue;
    int c = a--;
}

這段代碼中。不會跑異常,因為checked關鍵字沒有影響到TestFun內部。如果需要這么做的話,要么在TestFun內部加checked關鍵字,要么打開全局開關(加編譯參數/checked或者VS中設置)。
2.checked,unchecked關鍵字不檢查左移和右移是否溢出。
復制代碼 代碼如下:

static void Main(string[] args)
{
    checked
    {
        int a = int.MinValue;
        int c = a>>1;
    }
}

執行不會拋異常:

image

3.為了性能考慮,建議Debug時做檢查,Release時不做檢查。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97国产suv精品一区二区62| 亚洲欧美一区二区三区久久| 亚洲片av在线| 色偷偷噜噜噜亚洲男人的天堂| 91欧美日韩一区| 日本三级久久久| 久久久久久久国产精品视频| 91国偷自产一区二区三区的观看方式| 国产精品美乳一区二区免费| 欧美日韩国产中文字幕| 色樱桃影院亚洲精品影院| 亚洲福利视频网站| 91在线无精精品一区二区| 欧美日本精品在线| 日韩最新免费不卡| 亚洲的天堂在线中文字幕| 国产精品人人做人人爽| 成人国内精品久久久久一区| 国产欧美一区二区三区在线| 黄色精品在线看| 精品国产一区二区三区久久狼5月| 91久久中文字幕| 国产成人在线亚洲欧美| 久久久久久网站| 97香蕉超级碰碰久久免费软件| 欧美极品美女电影一区| 国产精品高精视频免费| 亚洲第一福利视频| 97在线视频免费看| 亚洲精品www| 欧美大奶子在线| 美女性感视频久久久| 国产精品久久久久久久午夜| 亚洲自拍另类欧美丝袜| 亚洲国产精品久久久久久| 精品国产一区二区在线| 日韩精品免费在线视频观看| 久久久久免费精品国产| 精品久久久一区| 国产69精品久久久久久| 国产欧美在线播放| 国产va免费精品高清在线| 欧美黑人巨大精品一区二区| 久久福利视频导航| 欧美日韩中国免费专区在线看| 5252色成人免费视频| 久久97精品久久久久久久不卡| 精品国产户外野外| 国产精品久久久久9999| 色偷偷亚洲男人天堂| 欧美亚洲国产视频小说| 一区二区三区四区在线观看视频| 国产精品精品视频一区二区三区| 国内偷自视频区视频综合| 欧美精品免费在线| 欧美精品手机在线| 日韩电影大片中文字幕| 久久五月天色综合| 欧美精品情趣视频| 一本色道久久综合狠狠躁篇的优点| 精品亚洲aⅴ在线观看| 91亚洲精品在线观看| 国产91在线播放九色快色| 午夜欧美大片免费观看| 热草久综合在线| 中文字幕亚洲一区二区三区| 精品久久久久久中文字幕大豆网| 国产精品久久久久免费a∨大胸| 久久成人精品视频| 欧美激情在线观看视频| 欧美激情精品久久久久久大尺度| 免费不卡欧美自拍视频| 亚洲欧洲国产精品| 国产欧美一区二区三区久久| 456亚洲影院| 日韩在线视频线视频免费网站| 欧美电影第一页| 欧美日韩免费区域视频在线观看| 欧美性在线观看| 日韩亚洲欧美成人| 国产精品极品在线| 欧美午夜视频一区二区| 欧美一区二区大胆人体摄影专业网站| 亚洲精品乱码久久久久久按摩观| 久久青草福利网站| 91tv亚洲精品香蕉国产一区7ujn| 狠狠躁天天躁日日躁欧美| 91在线视频免费| 精品动漫一区二区三区| 久久成人在线视频| 欧美性极品xxxx娇小| 国产一区二区免费| 欧美精品久久久久久久免费观看| 国产福利视频一区| 亚洲欧美国产精品久久久久久久| 色综合久久天天综线观看| 岛国视频午夜一区免费在线观看| 欧美电影在线免费观看网站| 亚洲欧美在线x视频| 68精品国产免费久久久久久婷婷| 伊人久久综合97精品| 国产精品久久久久久久久免费| 久久久噜噜噜久久| 日韩av综合中文字幕| 伊人久久综合97精品| 日韩欧美亚洲成人| 伊人久久精品视频| 久久91精品国产| 国产欧美中文字幕| 欧美日韩精品在线视频| 午夜伦理精品一区| 在线a欧美视频| 91午夜理伦私人影院| 91中文字幕在线观看| 两个人的视频www国产精品| 国产91露脸中文字幕在线| 精品久久久久久| 91亚洲午夜在线| 欧美激情亚洲自拍| 国产一区二区三区高清在线观看| 久久久999成人| 国产成人亚洲综合青青| 亚洲电影免费观看高清完整版| 国产成人精品a视频一区www| 日本aⅴ大伊香蕉精品视频| 91九色视频导航| 海角国产乱辈乱精品视频| 久久久久久九九九| 国产日韩欧美夫妻视频在线观看| 国产美女久久久| 久久影视电视剧免费网站清宫辞电视| 中文字幕欧美精品日韩中文字幕| 亚洲自拍中文字幕| 精品国产91久久久久久| 日本精品免费一区二区三区| 日韩在线视频网| 亚洲激情小视频| 亚洲加勒比久久88色综合| 78m国产成人精品视频| 欧美日韩一区二区在线| 26uuu亚洲国产精品| 日韩美女写真福利在线观看| 97超视频免费观看| 国产精品影院在线观看| 亚洲国产精品成人va在线观看| 国产有码在线一区二区视频| 日韩成人在线免费观看| 日韩精品福利网站| 欧美激情免费在线| 91免费人成网站在线观看18| 国产精品自拍网| 国产精品主播视频| 欧美激情免费视频| 这里只有精品丝袜| 国产日韩欧美在线看| 性日韩欧美在线视频| 欧美激情一区二区三区在线视频观看| 欧美亚洲另类制服自拍| 日韩欧美中文在线| xxx一区二区| 在线播放国产精品| 欧美裸体男粗大视频在线观看| 亚洲一区二区久久久久久久| 久久久久久久久国产精品|