2010-03-27 39 views
4

我有这样的代码:故障与行动<T1, T2>和传递多个参数

 s(x => x.Open()); 

s是它要求一个参数,是完全没有问题,像这样的方法:

public void s(Action<p1> action) {} 

忽略的命名约定,如果我使下面的方法:

public void s(Action<p1, p2> action) {} 

如何通过超过e参数?出于兴趣,是否有任何方法使用params关键字与动作<>?

此外,我正在使用C#4.0,所以我会有兴趣了解它如何可以帮助我。

感谢

回答

9

如果您希望将多个参数传递给在C#中,你需要用括号包围参数的lambda表达式。例如

s((x,y) => x.Open(y)); 
2
s((x, y) => ...);