C#メモ 同じ名前のクラスを別々のnamespaceで定義してみる
なんやかんやで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プログラミングシリーズ)"]
ディスカッション
コメント一覧
まだ、コメントがありません