我想要这样的魔法发生……
class SomeClass {}
public static void main()
MagicFunctionOrMacrosOrSomethingThatGetTypeOf("SomeClass") some_var = null;<br />
}
也许这很疯狂,但有可能吗?
我需要它来避免疯狂的大型 switch 案例,因为有很多类,但在某些代码点无法分辨要创建哪些类。
举个例子:
我有基类:
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();
天啊...