【问题标题】:Pass Type as a parameter to a function将类型作为参数传递给函数
【发布时间】:2011-01-25 22:47:44
【问题描述】:

我有一个字典对象

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]>>()?

我只是想让我的解决方案更灵活,但我不确定这是否可能。 谢谢!

【问题讨论】:

  • 正如 Sparkie 所回答的,Activator 可以为您做到这一点。如果您只需要每个子类的一个实例,您可能需要查看对象工厂或结构映射
  • 这是宝贵的建议,谢谢!我还不熟悉这些概念。

标签: c# object silverlight-3.0 memory-management


【解决方案1】:
var c = (BaseClass)Activator.CreateInstance(dict["type1"]);

【讨论】:

    【解决方案2】:

    你可以调用 Activator.CreateInstance(type)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 2013-01-27
      • 2018-12-12
      • 2019-09-29
      • 2018-01-04
      • 2022-10-06
      相关资源
      最近更新 更多