カテゴリー
C

独習C#第3版、P456 名前空間

using System;

namespace Chapter01All
{// カウンタのための名前空間を宣言
    namespace Counter
    {
        // 簡単なカウントダウン用のカウンタ
        class CountDown
        {
            int val;

            public CountDown(int n) { val = n; }

            public void Reset(int n)
            {
                val = n;
            }

            public int Count()
            {
                if (val > 0) return val--;
                else return 0;
            }
        }
    }
}

using System;

namespace Chapter01All
{
    //名前空間の例

    using System;

    class NSDemo
    {
        public static void Main()
        {
            Counter.CountDown cd1 = new Counter.CountDown(10); 
            //↑矢印CountDownクラスがCounter名前空間で修飾されている
            int i;

            do
            {
                i = cd1.Count();
                Console.Write(i + " ");
            } while (i > 0);
            Console.WriteLine();

            Counter.CountDown cd2 = new Counter.CountDown(20);

            do
            {
                i = cd2.Count();
                Console.Write(i + " ");
            } while (i > 0);
            Console.WriteLine();

            cd2.Reset(4);
            do
            {
                i = cd2.Count();
                Console.Write(i + " ");
            } while (i > 0);
            Console.WriteLine();
        }
    }

}

 独習C#第3版では上のコードでのnamespace Chapter01Allで括るところは無いんですが、上の両方のコードを同じnamespaceに入れているので、問題なく動くようです。独習C#第3版のサンプルのプロジェクトの構成が、VSの通常のファイル構成と違っています。普通にやれば、アプリケーション単位のファイル構成ですが、独習C#第3版のファイル構成はチャプターごとのファイル構成で、サンプルのプログラムがまとまって入ってます。プロジェクトになれるのは一個ですので、その都度プロジェクトに入れるか、外すかしないと、Main()が2個になってエラーになります。上の様な場合は、例えば上の部分はCounter.csと下はNSDemo.csの両方をプロジェクトに入れます。Main()は1個です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

inserted by FC2 system