そんな魔法が起きて欲しい…
class SomeClass {}
public static void main()
MagicFunctionOrMacrosOrSomethingThatGetTypeOf("SomeClass") some_var = null;<br />
}
多分それはクレイジーですが、それは可能ですか?
多くのクラスがあるため、クレイジーな大きなスイッチケースを避けるために必要ですが、コードのある時点で、どのクラスを作成するかを伝えることができません。
例を見てみましょう:
私は基本クラスを持っています:
class baseCLASS {}
多くの子クラスがあります:
class class1 : baseCLASS {}
class class2 : baseCLASS {}
...
class classn : baseCLASS {}
外部からイベント ハンドラに渡されるフラグがあります:
string class_name; //実際には、辞書内の文字列名に接続する必要がある int フラグを使用します。
これを作ることを余儀なくされました:
switch(class_name)
case "class1":
class1 some_class = new class1();
some_class.RunHandler();
break;
case "class2":
class2 some_class = new class2();
some_class.RunHandler();
break;
case "classn":
classn some_class = new classn();
some_class.RunHandler();
break;
}
その大きな switch ステートメントを次のようなものに置き換えたいと思います。
MagicFunctionOrMacrosOrSomethingThatGetTypeOf(class_name) some_var = null;
... some initialization actions with some_var
some_var.Build();
some_var.RunHandler();
オーマイ...