2010-03-27 49 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) => ...);