代码之家  ›  专栏  ›  技术社区  ›  raven

为什么C#lambda函数如此炒作?[副本]

  •  8
  • raven  · 技术社区  · 17 年前

    4 回复  |  直到 17 年前
        1
  •  26
  •   Jon Skeet    17 年前

    与匿名方法相比,lambda表达式有两个主要方面:

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

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

    不过,不要低估语法糖——匿名函数充当闭包的好处是巨大的,而且能够将代码放在你想要的地方,而不是放在一个单独的方法中。

        2
  •  14
  •   Andrew Hare    17 年前

    expression trees 这开辟了许多可能性(尤其是LINQ)。

        3
  •  4
  •   Lou Franco    17 年前

    有一个非常简洁的语法,就更有可能围绕它们构建更多的东西。想象一下,一个没有任何语法糖的复杂Linq查询。