【问题标题】:How to instantiate a class based on a variable type of the class to be instantiated [duplicate]如何根据要实例化的类的变量类型实例化一个类[重复]
【发布时间】:2020-04-29 12:33:25
【问题描述】:

有没有办法实例化一个类,但不是通过它的类名,而是使用 Class 的类型? 可能/可能使用转换或反射。?

例如我有一个类,通常会按照...创建它的一个实例。

TCustDataDetailModel newDataDetail = new TCustDataDetailModel ();

但我希望能够像..那样做。

public void MyFunction (Type somePassedinParamType)
{
    somePassedinParamType newDataDetail  = new somePassedinParamType();

}

谢谢

【问题讨论】:

    标签: c# class type-conversion instantiation converters


    【解决方案1】:

    您需要使用Activator 类。

    public void MyFunction (Type somePassedinParamType)
    {
        var newInstance = Activator.CreateInstance(somePassedinParamType);    
    }
    

    请注意,您没有空构造函数,您需要使用 CreateInstance 的覆盖之一并传递类所需的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 2020-01-01
      • 2016-12-24
      相关资源
      最近更新 更多