c# - 为什么对 C# lambda 函数如此大肆宣传?

标签 c# lambda

<分区>

我刚开始用 C# 2.0 编程,所以我从来没有使用过 lambda 表达式,但是,为什么要大惊小怪呢?它们只是匿名委托(delegate)的语法糖,还是还有其他我看不到的东西?

最佳答案

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

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

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

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

不过不要忽视语法糖 - 匿名函数作为闭包的好处是巨大的,并且能够将代码放在您想要的位置,而不是放在单独的方法中。

关于c# - 为什么对 C# lambda 函数如此大肆宣传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1154808/

相关文章:

c# - T 未知时如何创建 Func<T, bool>

asp.net-mvc-3 - ExpressionHelper.GetExpressionText(expression) 不返回我的属性的名称

c# - C# 编译器如何决定发出可重定向的程序集引用?

c# - Windows 工作流基础。我应该使用它吗?

c# - 无法转换类型 'UnityEngine.Component'

java - 为什么 flatMap() 之后的 filter() 在 Java 流中是 "not completely"惰性?

Java 8 使用 lambda 访问私有(private)成员?

python - 迭代更新 Lambda 函数

c# - 如何在 C#/.Net 中模拟结束进程树

c# - 如何知道 Azure 文件存储共享何时已被删除?