如何初始化具有构造函数的动态类

Qwerty

我有以下课程:

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);

语法实例化TMyTestMethod是不正确。我想做的事可能吗?

恩尼斯

您可以尝试使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当类构造函数具有参数时,如何在Java中初始化数组?

如何在工厂方法中初始化具有多个参数构造函数的类

在具有私有构造函数的类中初始化静态变量

如何在类构造函数中初始化动态分配的数组

具有默认构造函数已删除的类类型可以默认初始化吗?

具有类内初始化的默认默认构造函数的行为是什么?

具有未初始化最终类变量的构造函数

当类具有静态构造函数时,将初始化静态字段

直接或通过构造函数初始化具有相同类型的类

使用具有非强制值的构造函数初始化类

具有模板构造函数专门化的模板类,用于初始化模板化的基类

C ++:具有初始化列表的默认构造函数

聚合初始化绕过私有类构造函数

在没有构造函数的类中初始化变量

C ++构造函数如何初始化其类的对象?

继承和复制构造函数-如何从基类初始化私有字段?

如何从子类的构造函数初始化父类的私有成员

综合默认构造函数如何初始化已初始化的类成员?

如何在C ++中使用构造函数(只是构造函数)在类中初始化大型私有数组?

如何使用 std::vector 动态实例化具有参数化构造函数的类?

PHP是否具有减少类和构造函数中参数声明和初始化重复的功能?

使用Class.forName()初始化一个类,该类具有接受参数的构造函数

使用Class.forName()初始化一个类,该类具有带参数的构造函数

具有支撑初始化列表的已删除构造函数的默认构造

如何在C ++ 11中初始化未初始化其构造函数中所有成员的类

Java-如何允许类的所有方法访问在构造函数中初始化的数组?

如何在运行时使用构造函数初始化类中私有的数组?

用类构造函数初始化类对象的指针?

如何为类创建智能指针并初始化类构造函数