2016-03-15 104 views
0

我碰到一個lambda語法,這是我無法跟蹤lambda語法看起來像這樣:()=>

Action act =() => object.Foo(null); 

如何來解釋來的?我知道如何使用lambda表達式,但這個對我來說不是很清楚。

+0

該代碼與您的標題不符。在你的頭銜中,你有倒退。 – BoltClock

+1

什麼部分具體不清楚給你? – CodeCaster

+1

如果你不認爲這是重複的,請添加更多關於「我知道如何使用lambda表達式」的解釋,但是這個對我來說不是很清楚。 - 我們*怎麼打算知道這個問題的哪些方面會讓你感到困惑,而不是你顯然理解得很好的其他例子。 –

回答

4

這是一個沒有任何參數的lambda表達式。你會使用這樣的:

act(); 

如果它有參數,例如:

Action act = x => object.Foo(x); 

然後你會使用這樣的:

act(2); 
0
Action act =() => object.Foo(null); 

是相當於(不一樣)

private void act(){ object.Foo(null); } 

其中act是您調用內聯而不是在您的類中定義它的方法。

Action是一個不返回結果的委託。還有一個叫做Func的類似類型,它返回結果。

+0

不完全。除了你錯過虛空的事實之外,儘管他們可能有相同的行爲,但它們並不是基本相同的東西。附: - 不是我投票的人。 – series0ne

+1

@ series0ne - 我應該使用同等的,更好的verbage。不,它們不一樣,但它確實降低了對那個Action是一個可以執行的方法(Delegate)。我修改了我的描述。 – Igor

+0

我會根據你的編輯投票,但行爲不是匿名的......它被稱爲「行爲」 – series0ne

相關問題