如何声明通用异步任务?

时间:2016-02-07 13:06:13

标签: c# generics

我有以下方法:

public async Task<List<Product>> GetProductsAsync()

哪个没问题,返回产品清单。

但我想制作这种通用的东西 - 比如......

public async Task<List<T>> GetAsync()

但是我在语法方面苦苦挣扎,如果有人能指出我正确的方向,我真的很感激。

由于

2 个答案:

答案 0 :(得分:6)

几乎就在那里:

public async Task<List<T>> GetAsync<T>()

答案 1 :(得分:4)

创建返回任务的泛型方法与创建返回其他任何内容的泛型方法没有区别:

public async Task<List<T>> GetStuffAsync<T>() {
    ...
}

您需要提供泛型类型参数T才能使语法有效。通常,虽然您可能希望在方法中生成其他内容,例如

public async Task<List<T>> GetStuffAsync<T>(Func<T> gen) {
    ...
}