如何根据要实例化的class的变量类型实例化一个class

How to instantiate a class based on a variable type of the class to be instantiated

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

例如我有一个 class 并且通常根据..

创建它的一个实例
TCustDataDetailModel newDataDetail = new TCustDataDetailModel ();

但我希望能够像..

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

}

感谢

您需要使用 Activator class.

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

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