2011-01-25 95 views
2

我有一本字典對象通行證類型作爲參數傳遞給函數

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

我也有一個BaseClass的和多個子類的,說:ChildClass1ChildClass2等。 這本字典有值:

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

我的問題是 - 有什麼辦法可以做這樣的事情:

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

我只是想讓我的解決方案更加靈活,但我不確定這是否可能。 謝謝!

+0

作爲火花隊員回答,激活能爲你做到這一點。如果你只需要每個孩子班的一個實例,你可能想看看對象工廠或結構圖 – Rob 2011-01-25 23:53:17

+0

這是寶貴的意見,謝謝!我還不熟悉這些概念。 – Masha 2011-01-26 20:09:10

回答

6
var c = (BaseClass)Activator.CreateInstance(dict["type1"]); 
1

可以調用Activator.CreateInstance(類型)

相關問題