Я хочу, чтобы такое волшебство происходило ...
class SomeClass {}
public static void main()
MagicFunctionOrMacrosOrSomethingThatGetTypeOf("SomeClass") some_var = null;<br />
}
Может, это безумие, но возможно ли это?Мне нужно это, чтобы избежать сумасшедшего большого случая переключения, потому что имеет много классов, но в определенный момент кода не может сказать, какие классы создавать.Давайте приведем пример:У меня есть базовый класс:класс baseCLASS {}
имеет много дочерних классов:class class1: baseCLASS {}class class2: baseCLASS {}...class classn: baseCLASS {}есть некоторый флаг, который приходит извне к обработчику событий:строка имя_класса;// на самом деле я использую флаг 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();
о боже ...