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

时间:2009-07-20 17:23:46

标签: c# lambda

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

4 个答案:

答案 0 :(得分:26)

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

  • 他们比匿名方法更简洁
  • 他们可以转换为expression trees以及代表

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

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

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

答案 1 :(得分:14)

它们可以很容易地用作委托中的语法糖,但lambda的重要之处在于编译器能够将它们转换为expression trees,从而开辟了许多可能性(其中最重要的是LINQ)

答案 2 :(得分:4)

具有非常简洁的语法使得围绕它们构建更多内容的可能性更大。想象一下复杂的Linq查询,没有任何语法糖。

答案 3 :(得分:4)