如何使用不同的“泛型”返回类型声明泛型方法

时间:2018-04-19 15:56:53

标签: c# generics

我有一个看起来像这样的界面

public interface IBlueFinApiClient
{
    Task<BlueFinApiResponse> DecryptAsync(BlueFinApiRequest request);
}

这个方法在实现时,只是带到请求和帖子的端点。我需要使用此端点发布另一个不同类型的请求,Task<>的返回将是不同的类型也是。所以,我试图将其更改为通用,但我仍然坚持如何以通用格式定义返回类型:

public interface IBlueFinApiClient<T> where T:class
{
    Task<What should happen here?> DecryptAsync(T request) 

我有点探索协方差路线,但我不确定这是否就是答案。

1 个答案:

答案 0 :(得分:4)

您可以指定多个泛型类型参数,例如:

public interface IBlueFinApiClient<TInput, TReturn>
{
    Task<TReturn> DecryptAsync(TInput request);
}

或者,您可以将返回类型指定为通用方法:

public interface IBlueFinApiClient<TInput>
{
    Task<TReturn> DecryptAsync<TReturn>(TInput request);
}