我开始使用Lambda2.0编程,所以我从来没有使用过C#表达式,但是,为什么对此如此大惊小怪呢?它们只是匿名委托周围的语法糖,还是还有我看不到的东西?
发布于 2009-07-20 09:25:48
与匿名方法相比,lambda表达式有两个主要特性:
除非您使用的是表达式树,否则它们与匿名方法极其相似。不同之处在于,您通常可以在一条语句中编写多个lambda表达式(将方法调用链接在一起)而不会失去可读性,但匿名方法就是有点太冗长了。
顺便说一句,与其说lambda表达式“只是匿名委托周围的语法糖”,不如说lambda表达式和匿名方法“只是创建委托(和表达式树)的语法糖”。
但不要忽视语法糖-匿名函数作为闭包的好处是巨大的,以及将代码放在你想要的地方的能力,而不是在一个单独的方法中。
发布于 2009-07-20 09:25:38
它们可以很容易地用作代理周围的语法糖,但lambdas的重要之处在于,编译器能够将它们转换为,这打开了许多可能性(其中最重要的是LINQ)。
发布于 2009-07-20 09:25:46
具有非常简洁的语法使得更多的东西更有可能围绕它们而构建。想象一个没有任何语法糖的复杂Linq查询。
https://stackoverflow.com/questions/1154808
复制