c# - 在 C# 中,Lambda 表达式是对象吗?

标签 c# lambda

在 C# 中,lambda 表达式是对象吗?如果是,它们是什么类型的对象?

最佳答案

Lambda 表达式本身只存在于源代码中。它们本身没有类型,这就是编译器总是坚持将它们转换为特定类型的原因。

这就是这段代码无法编译的原因:

// No idea what type to convert to!
object x = y => y.Length;

但是这样做:

Func<string, int> x = y => y.Length;

Lambda 表达式总是转换为委托(delegate)类型表达式树类型。同样,匿名方法总是转换为委托(delegate)类型。

关于c# - 在 C# 中,Lambda 表达式是对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1044200/

相关文章:

C# - 在任务栏上鼠标悬停时,会生成预览。我怎样才能通过 C# 编码实现这个

c# - 如何确定单帧 DICOM 是否实际上是 MRI 切片?

c# - LINQ to entities - 构建 where 子句以测试多对多关系中的集合

c++ - 如何使 C++ lambda 适应 back_inserter 等接收器接口(interface)

c# - Lambda 返回另一个 lambda

c# - 如何将一个数组项属性值设置为对另一个项的引用的 C# 数组转换为 JSON

c# - 更改 XtraGrid 中的数据源

c# - 如何使用一次性设置?

C# Joins/Where 与 Linq 和 Lambda 如何返回 List<T>

c# - 用 try catch 包装的动态 lambda