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

首頁 > 編程 > C# > 正文

C#入門之checked和unchecked的區(qū)別實例解析

2020-01-24 02:32:24
字體:
供稿:網(wǎng)友

本文以實例形式對比測試了C#中checked和unchecked的區(qū)別,對于C#初學(xué)者來說有很好的借鑒參考價值。具體分析如下:

int類型的最大值是2147483647,2個最大值相加就會超出int的最大值,即出現(xiàn)溢出。

  class Program  {    static void Main(string[] args)    {      int y = 2147483647;      int x = 2147483647;      int z = x + y;      Console.WriteLine(z.ToString());      Console.ReadKey();    }  }

把斷點(diǎn)打在 int z = x + y;代碼行,單步調(diào)試,可以看到z的值為-2。因為int類型的最大值是2147483647,x + y超出了最大值,出現(xiàn)了溢出。

程序運(yùn)行效果如下圖所示:

一、使用checked:

如果我們想讓編譯器幫我們判斷是否溢出,就使用checked關(guān)鍵字。

  class Program  {    static void Main(string[] args)    {      int y = 2147483647;      int x = 2147483647;      int z = checked(x + y);    }  }

運(yùn)行后拋出溢出異常,運(yùn)行結(jié)果如下圖所示:

如果我們想手動捕獲并打印異常,應(yīng)該這樣寫:

  class Program  {    static void Main(string[] args)    {      int y = 2147483647;      int x = 2147483647;      try      {        int z = checked(x + y);      }      catch (OverflowException ex)      {        Console.WriteLine(ex.Message);      }      Console.ReadKey();    }  }

運(yùn)行結(jié)果如下圖所示:

二、使用unchecked:

使用unchecked不會拋出溢出異常。

  class Program  {    static void Main(string[] args)    {      int y = 2147483647;      int x = 2147483647;      int z = unchecked(x + y);      Console.WriteLine(z.ToString());      Console.ReadKey();    }  }

結(jié)果為:-2

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 和田县| 华坪县| 色达县| 洞头县| 夏河县| 遂平县| 玉屏| 洪雅县| 密云县| 兴业县| 沙雅县| 柯坪县| 若尔盖县| 苏尼特左旗| 交城县| 稷山县| 玉屏| 仙桃市| 花垣县| 茶陵县| 泸水县| 冀州市| 巴青县| 阜新市| 萍乡市| 安顺市| 博白县| 德化县| 宾川县| 马龙县| 封开县| 睢宁县| 清原| 台北市| 辛集市| 平安县| 姜堰市| 石阡县| 渭源县| 河东区| 焉耆|