分類:[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"
|