2010-03-29 85 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#