2015-05-14 80 views
0

=() =>在c#中的含義是什麼?workflow window foundation =()=>

我以前使用過lambda,但是那些空的parens ()正在把我扔掉。

熟悉此:

customers.Find(x=>x.FirstName=="John") 

Article resource

enter image description here

+3

這是一個lambda表達式。 – SLaks

+0

它是一個lambda表達式或一個匿名函數。有關在C#中使用的信息,請參見MSDN參考資料[此處](https://msdn.microsoft.com/zh-cn/library/bb397687.aspx)。 –

+0

我不明白downvote? OP顯然不符合C#lambda之前,直到你聽到名稱'lambda'它不是簡單的東西谷歌... –

回答

2

()只是表示匿名方法沒有參數。你習慣看的方式,如customers.Find(x=>x.FirstName == "John")是一樣的......第一個x是傳遞給lambda的參數。如果只有一個參數,括號是可選的,所以也可以這樣寫:customers.Find((x)=>x.FirstName == "John")使用不帶參數的方法時,「單參數」排除不適用,因此您必須編寫()。你可以看到更多in the documentation.

lambda調用之前的=將隨後的方法體指派給Implementation屬性。

2

與它下面的塊沿着() => new Sequence部分是一個lambda函數不帶參數,並且返回一個Sequence

這拉姆達是分配給this.Implementation,以便稍後您可以調用lambda。例如,var s = this.Implementation()

4

它將lambda表達式分配給變量或屬性this.Implementation。你必須打破這樣的運營商:

this.Implementation 
= //assignment operator 
()=> new Sequence { /* stuff */ }; 

該()是指定該方法不帶參數; =>標識隨後的lambda調用時要運行的代碼。

+0

我以前使用lambda的,但像以下內容: – Rod

+0

customers.Find(x => x.FirstName ==「約翰」),但空(()拋出我猜我猜 – Rod