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

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

checked和unchecked的區別

2019-11-14 16:30:23
字體:
來源:轉載
供稿:網友

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

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

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

 

□ 使用checked

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

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

運行,拋出溢出異常:   
2

 

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

    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();
        }
    }

運行,
3

 

□ 使用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();
        }
    }

結果為:-2

 

總結:checked關鍵字用來檢查、捕獲溢出異常,unchecked關鍵字用來忽略溢出異常。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贺兰县| 巴马| 青阳县| 高尔夫| 长寿区| 宝兴县| 秦安县| 喀喇沁旗| 台东县| 汶上县| 定襄县| 冷水江市| 宜丰县| 沐川县| 恩施市| 克东县| 石景山区| 全椒县| 崇文区| 青川县| 冀州市| 柘城县| 邳州市| 平乐县| 朝阳市| 钦州市| 邹城市| 贵南县| 上杭县| 固始县| 邵阳县| 贵州省| 徐汇区| 莆田市| 昔阳县| 枣强县| 奉贤区| 无极县| 张家川| 康保县| 肇源县|