C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 135 を表示中)
■79668 / )  namespace を変数で扱うには
□投稿者/ たけ (1回)-(2016/04/27(Wed) 17:06:24)

分類:[C#] 

下記の様にメソッドの戻り値として namespace を返す事はできるのでしょうか?
単純に好奇心から知りたいです。

環境:
	VS C# framework3.5 



namespace hoge
{
	void test()
	{
		xxxx  ns;		// namespaceが設定できる変数

		// namespace を判別する
		int type = 1;
		switch (type)
		{
			case 1: ns = ns1; break;
			case 2: ns = ns2; break;
		}

		// 上で取得した namespace の NsTestクラスを作成
		ns.NsTest = new ns.NsTest();

		// メッセージを出力する
		Console.WriteLine(ns.Message);
		// Output "namespace1"
	}
}

namespace ns
{
	interface INsTest
	{
		string Message { get; }
	}
}


namespace ns1
{
	class NsTest : ns.INsTest
	{
		public string Message
		{
			get { return "namespace1"; }
		}
	}
}


namespace ns2
{
	class NsTest : ns.INsTest
	{
		public string Message
		{
			get { return "namespace2"; }
		}
	}
}



--------------------------------------
下記の様にすればできる事は分かっています。
int type = 1;
INsTest nt;
switch (type)
{
	case 1: nt = new ns.NsTest(); break;
	case 2: nt = new ns.NsTest(); break;
}
Console.WriteLine(ns.Message);
// Output "namespace1"




返信 編集キー/


管理者用

- Child Tree -