gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:57 25 4
gpt4 key购买 nike

我有以下类(class):

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

MyTestMethod 中实例化 T 的语法不正确。我正在尝试做的事情可能吗?

最佳答案

您可以尝试使用 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;
}

关于c# - 如何初始化具有构造函数的动态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com