为什么用C#lambda这样的炒作功能呢?

rav*_*ven 8 c# lambda

我开始用C#2.0编程,所以我从未使用过lambda表达式,但是,为什么这么大惊小怪?它们只是围绕匿名代表的语法糖,还是还有一些我看不到的东西?

Jon*_*eet 26

好吧,lambda表达式在匿名方法上有两个主要内容:

  • 它们比匿名方法更简洁
  • 它们可以转换为表达式树和委托

除非您使用表达式树,否则它们与匿名方法非常相似.不同之处在于,您通常可以在一个语句中编写多个lambda表达式(链接方法一起调用)而不会丢失可读性,但匿名方法只是有点过于冗长.

顺便说一句,lambda表达式"只是围绕匿名委托的语法糖"并不是因为lambda表达式和匿名方法"只是围绕创建委托(和表达式树)的语法糖."

不要忽视语法糖 - 匿名函数充当闭包的好处是巨大的,同时能够将代码放在您想要的位置,而不是单独的方法.


And*_*are 14

它们可以很容易地用作代理的语法糖,但lambdas的重要之处在于编译器能够将它们转换为表达式树,从而开辟了许多可能性(其中最重要的是LINQ).