<分区>
例如,为什么大多数 LINQ 运算符接受 Expression<Func<TSource>>
及其等价物 Func<TSource>
?
使用通用 Expression
的好处/原因是什么?类而不是直接的 lambda 语法?
<分区>
例如,为什么大多数 LINQ 运算符接受 Expression<Func<TSource>>
及其等价物 Func<TSource>
?
使用通用 Expression
的好处/原因是什么?类而不是直接的 lambda 语法?
最佳答案
使用 Expression<T>
您正在明确创建一个 expression tree - 这意味着您可以像处理数据一样处理构成查询的代码。
这是因为 LINQ 提供程序(例如 LINQ to SQL)检查查询本身以确定将 C# 表达式转换为 T-SQL 查询的最佳方式。由于表达式树允许您将代码视为提供者能够执行此操作的数据。
关于c# - Expression<Func<>> 和 Func<> 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2664841/