是否有超过4个参数的Func对象?

Geo*_*Geo 6 .net c#

我在这里看到这Func<(Of <(T1, T2, T3, T4, TResult>)>) DelegateFunc命名空间中的最后一个.如果您需要4个以上参数,该怎么办?

Luk*_*keH 8

你可以创建自己的Func代表,或者你可以等待.NET 4到达(它包括内置FuncAction代表多达16个参数).

正如其他人所提到的,如果你发现自己需要一个能够接受这么多参数的委托,那么也许是时候考虑某种重构了.

public delegate TResult Func<T1, T2, T3, T4, T5, TResult>
    (T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);

public delegate TResult Func<T1, T2, T3, T4, T5, T6, TResult>
    (T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);

public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, TResult>
    (T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);

public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult>
    (T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);

// etc
Run Code Online (Sandbox Code Playgroud)