如何根据要实例化的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 需要的内容。
有没有办法实例化一个 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 需要的内容。