gpt4 book ai didi

c# - 在泛型函数中将类作为参数传递

转载 作者:行者123 更新时间:2023-11-30 15:52:28 25 4
gpt4 key购买 nike

我正在使用这个简洁的 classes将 MySQL 数据库中的数据表映射到对象中。现在我想编写一个通用函数来返回各种不同类的列表,这样我就可以调用:

List<Person> persons = ReadDataTable<Person>();
List<Car> persons = ReadDataTable<Car>();

还有更多类。

但我不明白如何在我的通用函数中创建对象 DataNamesMapper:

public List<T> ReadDataTable<T>()
{
List<T> parsedObjects = new List<T>();
DataNamesMapper<typeof(T)> mapper = new DataNamesMapper<typeof(T)> (); //<- error
DataNamesMapper<Person> mapper = new DataNamesMapper<Person> (); //<- no error, non-generic
//...query data, map and fill list
return parsedObjects;
}

DataMapper 定义:

public class DataNamesMapper<TEntity> where TEntity : class, new()
{
...
}

这可能吗?

最佳答案

DataNamesMapper 是开放式的。要使其对 T 关闭,您需要使用以下语法:

DataNamesMapper<T> mapper = new DataNamesMapper<T>();

关于c# - 在泛型函数中将类作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54438866/

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