C#.NET Core,该函数接收具有通用类型的元组值的列表

时间:2019-05-07 08:58:12

标签: c# generics tuples

我一直在阅读,似乎无法找到一种方法来允许函数完全接受通用元组,但是也找不到任何表示元组不能接受通用参数的方法,这是在C#中所有可能?下面是我要定义的函数类型(显然不起作用)。

public static TController CreateControllerWithAuthenticatedContextsAndResponseMessages<TController>(
        List<Tuple<TRequest, TResponse, Func<TResponse>, Expression<Func<TRequest, bool>>>> genList, 
        string policyName)
        where TController : class
        where TRequest : class
        where TResponse : class
    {

    }

这有可能做到吗?否则,还有其他方法可以采用这些参数吗?之所以这么复杂,是因为我要确保用户(我们)不能传递错误数量的每个参数,因为它需要每个参数。

编辑:对不起,应该更清楚了。 TRequest和TResponse必须是泛型列表,因为它们将类似于AddedThis,AddedThat。与结果函数和表达式相匹配。这是为了模拟要测试的控制器。

1 个答案:

答案 0 :(得分:1)

是的,它确实有效,但是您必须在方法的签名中定义所有通用类型参数:

public static TController CreateControllerWithAuthenticatedContextsAndResponseMessages
    <TController, TRequest, TResponse>
( ... )

数字2和3丢失了。