2009年12月25日金曜日

checkedキーワードとuncheckedキーワードを使用して、さらにunchecked文にchecked文をネスト(入れ子)してオーバーフローをcatchしたりしなかったりしてみる。(ちなみにオーバーフローさせた値がどうなるかも確認したりしてみました。)

using System;


class MainClass
{
    static void Main()
    {
        try
        {
            int a = int.MaxValue;
            int b = int.MinValue;


            unchecked
            {
                Console.WriteLine(a++);
                Console.WriteLine(a == int.MinValue);
                Console.WriteLine(b--);
                Console.WriteLine(b == int.MaxValue);
                Console.WriteLine(b);
                a--;
                b++;


                checked
                {
                    a++;
                    b--;
                    Console.WriteLine(a);
                    Console.WriteLine(b);
                }
            }
        }
        catch (Exception error)
        {
            Console.WriteLine(error.Message);
        }
        finally
        {
            Console.WriteLine("終了");
        }
    }
}

0 コメント:

コメントを投稿