我目前正在构建一个构建查询的UI,我希望能够以lambda函数的形式存储其他表达式(因为它可以很容易地使用intellisense等添加它们)。但是,我找不到任何方式获得例如。执行成员访问的lambda将转换为表达式,然后我可以将其插入到表达式树中。
NB。它不仅仅是我需要的成员访问
即。我正在尝试填写以下函数的正文
Function GetExpression(Of ParamType, ReturnType) _
(f As Func(Of ParamType, ReturnType)) As Expression
答案 0 :(得分:2)
将您的方法参数更改为:
Function GetExpression(Of ParamType, ReturnType) _
(f As Expression(Of Func(Of ParamType, ReturnType))) As Expression
当你用lambda调用它时,编译器会将标记化的表达式树提供给方法而不是编译的委托。
将执行lambda的Enumerable.Where与Queryable.Where进行比较和对比,但不是。{/ p>