Передать тип в качестве параметра функции - PullRequest
2 голосов
/ 26 января 2011

У меня есть объект словаря

Dictionary<string, Type> dict = new Dictionary<string, Type>();

У меня также есть BaseClass и несколько дочерних классов, скажем: ChildClass1 , ChildClass2 и т. Д. Словарь имеет значения:

dict.Add("type1", typeof(ChildClass1));
dict.Add("type2", typeof(ChildClass2));

Мой вопрос - есть ли способ сделать что-то вроде этого:

BaseClass c = new <<get a type from the dict: dict[type1]>>()?

Я просто хочу сделать свое решение более гибким, но я не уверен, возможно ли это вообще. Спасибо!

Ответы [ 2 ]

6 голосов
/ 26 января 2011
var c = (BaseClass)Activator.CreateInstance(dict["type1"]);
1 голос
/ 26 января 2011

Вы можете вызвать Activator.CreateInstance (тип)

...