c# - 表达式 lambda 和语句 lambda 的区别

标签 c# linq c#-4.0 lambda anonymous-function

表达式 lambda 和语句 lambda 有区别吗?

如果是,有什么区别?

在下面的链接中找到了这个问题,但无法理解答案 什么是表达式 Lambda?

C# interview Questions

该链接中提到的答案是这样的 右侧有表达式的 lambda 表达式称为表达式 lambda。

根据我的理解,表达式始终只在右侧。这就是我问这个问题的原因。有什么我不知道的吗?

最佳答案

这确实是令人困惑的行话;我们想不出更好的办法。

lambda 表达式 是以下任意项的统称:

x => M(x)
(x, y) => M(x, y)
(int x, int y) => M(x, y)
x => { return M(x); }
(x, y) => { return M(x, y); }
(int x, int y) => { return M(x, y); }

前三个是表达式lambda,因为lambda 运算符的右侧是一个表达式。最后三个是 lambda 语句,因为 lambda 运算符的右侧是一个 block

这也说明了左侧有三种可能的语法:单个参数名称,或带括号的非类型参数列表,或带括号的类型参数列表。

关于c# - 表达式 lambda 和语句 lambda 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17240642/

相关文章:

c#-4.0 - 用于访问文本文件的存储库模式

c# - 服务器的图像文件路径不是 C : drive MVC5

c# - 使用 EnumeratorCancellation 返回 AsyncEnumerable 或循环 WithCancellation 有什么区别

C# 实体代码优先 : Unwanted foreign key created

c# - 从 PHP 数组转换为 C# 字典

linq - 尝试将交叉连接 transact-sql 转换为 LINQ

c# - LINQ 查询根据数据库字段的属性返回列表

c# - 根据计数从字典列表中选择一个字典

.net - 我如何在C#中设置cookie过期时间

linq - 如何在linq中获取第二条记录到sql