首页 > 解决方案 > 如何根据要实例化的类的变量类型来实例化一个类

问题描述

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

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

TCustDataDetailModel newDataDetail = new TCustDataDetailModel ();

但我希望能够像..

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

}

谢谢

标签: c#classtype-conversioninstantiationconverters

解决方案


您需要使用Activator该类。

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

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


推荐阅读