欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2014年08月13日 09:56:14   投稿:shichen2014  
這篇文章主要介紹了C#中checked和unchecked的區(qū)別,是學(xué)習(xí)C#必須要牢固掌握的,需要的朋友可以參考下

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

int類型的最大值是2147483647,2個(gè)最大值相加就會(huì)超出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。因?yàn)閕nt類型的最大值是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é)果如下圖所示:

如果我們想手動(dòng)捕獲并打印異常,應(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不會(huì)拋出溢出異常。

  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

相關(guān)文章

最新評(píng)論