我有以下课程:
public class CustomItem
{
//....
}
并且有多个类CustomClass
在其构造函数方法中接受。例如:
public class FirstClass
{
public FirstClass(CustomItem customItem) { }
}
我试图创建一个接受动态类并对其进行初始化的通用方法。像这样:
public List<T> MyTestMethod<T>(CustomItem myCustomItem) where T : class, new()
{
List<T> list = new List<T>();
foreach(CustomItem myCustomItem in listOfCustomItems)
{
T instance = new T(myCustomItem);
list.Add(T);
}
return list;
}
因此,它可以像这样使用:
List<FirstClass> List1 = MyTestMethod<FirstClass>(customItem);
List<SecondClass> List2 = MyTestMethod<SecondClass>(customItem);
语法实例化T
中MyTestMethod
是不正确。我想做的事可能吗?
您可以尝试使用Activator
类创建带有参数的实例:
Activator.CreateInstance(typeof(T), args: myCustomItem);
在您的情况下:
public List<T> MyTestMethod<T>(CustomItem myCustomItem) where T : class
{
List<T> list = new List<T>();
foreach(CustomItem myCustomItem in listOfCustomItems)
{
T instance = (T)Activator.CreateInstance(typeof(T), args: myCustomItem);
list.Add(instance);
}
return list;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句