具有四个以上参数的操作委托(方法参数)

Tom*_*Tom 16 c# delegates

我编写了一个帮助器类,它使用Action - delegate作为方法参数.
像这样:
public void SomeMethod(Action<T> methodToExecute, T argument);

根据MSDN,您可以声明最大值.关于行动代表的4个论点:Action<T1,T2,T3,T4>.

现在我想调用一个需要5的方法!参数.我怎么能这样做?
最好的解决方案是我可以使用动态数量的方法参数.

谢谢

ang*_*son 25

声明你需要的动作委托,没有什么神奇之处:

public delegate void Action<T1, T2, T3, T4, T5>(T1 p1, T2 p2, T3 p3, T4 p4, T5 p5);
Run Code Online (Sandbox Code Playgroud)

  • 当.NET4到达时,内置的`Action`和`Func`委托将允许最多16个参数:http://msdn.microsoft.com/en-us/library/dd402872(VS.100).aspx (7认同)
  • 我认为具有16个参数的委托或方法是严重的代码味道...... (6认同)