2010-03-29 89 views
0

有沒有lambda表達式(C#)的任何好的鏈接學習?lambda的好教程

如果這麼友善地建議我一個。

在谷歌搜索,但可能是我的運氣沒有得到任何合適的。

+4

請更具體。例如。你使用什麼語言? – 2010-03-29 10:53:29

+0

對不起,我忘了。這是C#。我已經補充說現在 – xyz 2010-03-29 11:02:34

+3

我強烈建議你訪問www.lambdaexpression.net – Delashmate 2011-09-16 10:10:45

回答

1

lambda表達式是一個通用術語,可用於許多編程語言,它們的語義有時是不同的。

簡而言之,lambda表達式通常是一個沒有名稱的函數,允許函數作爲第一類對象的語言(即傳遞它們並從函數返回)。

Python的例子:

map(lambda x: x * 2, mylist) 

返回與的2倍元素在mylist(**)

還有Lambda Calculus,這是更數學元素的列表。

(**)到Python較真:我知道名單內涵是在這種情況下更好的,我只是想說明如何使用lambda

0

的LINQ總是與Lambda表達式相關。在.NET 2.0中,我們有匿名方法的概念,它允許您在不需要編寫委託函數的情況下編寫內聯函數體。 .NET 3.5的Lambda表達式是爲了體現Annonymous函數寫作的概念。

檢查this出。

+0

蘭姆達斯比匿名方法走得更遠;只涵蓋了一半的情景,坦率地說,不那麼有趣的一半。 – 2010-03-29 11:23:11

+0

我是完全同意你的意見,但我只是想給xyz一個非常簡單的介紹。因爲兩條三線你不能解釋Lambda的整個概念。 – 2010-03-29 11:30:51

1

C#中的Lambdas是一個兩面獸。它們可以運行非常多的like anonymous methods,或者(取決於方法簽名)C#編譯器可以編譯它們into Expression trees。兩個MSDN鏈接(以前)應該有所幫助;否則像C# in Depth這樣的書可能會爲你點亮幾個燈泡。或者我覆蓋了很多表達式樹(on my blogor here))。

如果你正在談論他們在LINQ-to-SQL,Entity Framework等中的使用 - 那麼它就是表達樹方面的重要內容;它比匿名方法有更多的侷限性(例如,你不能在.NET 3.5表達式樹中有一個「聲明體」 - .NET 4.0樹支持這一點,但C#4.0編譯器仍然沒有' T)。

1

Lambda表達式是一個包含表達式和函數的匿名函數。它可以用來創建委託或表達式樹。 這裏是一個很好的初學者教程解釋它Lambda expressions in C#