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個です。