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



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

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

此方法在实现时,仅转到包含请求的终结点并提交。 我需要使用此端点发布另一个不同类型的请求,并且来自Task<>的返回也将是不同类型的。因此,我正在尝试将其更改为泛型,但我坚持如何以泛型格式定义返回类型:

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

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

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

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

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

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

最新更新