C#メモ 同じ名前のクラスを別々のnamespaceで定義してみる

C#

なんやかんやでnamespaceを意識できると見やすい?

  • namespaceを変えれば同じ名前のクラスが定義できる

たとえば、こんな感じ?(わかりにくいかも…。)

  • 岐阜という名前空間の住民というクラスを定義
  • 愛知という名前空間の住民というクラスを定義

こうすれば、犬という同じ名前のクラスを定義できる。
ただ…、同じ名前空間でも別のクラス名でクラスを定義(たとえば、岐阜県民ってクラス名と、愛知県民ってクラス名)すればいいんだけどね…。

まま、とにもかくにもコードはこんな感じ。
まずは、FirstってnamespaceでTemplateって名前のクラスを定義。

namespace First
{
	class Template
	{
		public Template()
		{
			System.Console.WriteLine("First.Template.Template()");
		}
	}
}

次に、SecondってnamespaceでTemplateって名前(Firstってnamespaceのクラス名と同じ)のクラスを定義。

namespace Second
{
	class Template
	{
		public Template()
		{
			System.Console.WriteLine("Second.Template.Template()");
		}
	}
}

んで、呼び出し元はこんな感じにした。

// namespaceがFirstのTemplateクラスをインスタンス化する
First.Template first = new First.Template();

// namespaceがSecondのTemplateクラスをインスタンス化する
Second.Template second = new Second.Template();

// namespaceを明記しない場合はコンパイルエラーになる
//Template third = new Template();

実行してみるとこんな感じ。
同じTemplateってクラスが定義できてて、実行できる。

んまま、メモってことで。

[amazonjs asin="4822298264″ locale="JP" title="C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)"]