.net 从lambda函数生成不用于比较的表达式
我目前正在构建一个用于构建查询的UI,我希望能够以lambda函数的形式存储其他表达式(因为使用intellisense等可以很容易地添加它们)。但是,我找不到任何方法来获取,例如,执行成员访问的lambda,将其转换为可以插入到表达式树中的表达式 注意。我需要的不仅仅是成员访问 即,我正在尝试填写以下函数的正文.net 从lambda函数生成不用于比较的表达式,.net,vb.net,linq,lambda,linq-expressions,.net,Vb.net,Linq,Lambda,Linq Expressions,我目前正在构建一个用于构建查询的UI,我希望能够以lambda函数的形式存储其他表达式(因为使用intellisense等可以很容易地添加它们)。但是,我找不到任何方法来获取,例如,执行成员访问的lambda,将其转换为可以插入到表达式树中的表达式 注意。我需要的不仅仅是成员访问 即,我正在尝试填写以下函数的正文 Function GetExpression(Of ParamType, ReturnType) _ (f As Func(Of ParamType, ReturnType))
Function GetExpression(Of ParamType, ReturnType) _
(f As Func(Of ParamType, ReturnType)) As Expression
将方法参数更改为:
Function GetExpression(Of ParamType, ReturnType) _
(f As Expression(Of Func(Of ParamType, ReturnType))) As Expression
当您使用lambda调用它时,编译器将向方法提供标记化表达式树,而不是编译委托
比较并对比执行lambda的,与执行lambda的,与不执行lambda的。您是要反编译传入的
Func
,还是只需要一个调用Func
的lambda,给定一个ParamType
实例?谢谢,它工作得非常好,而且确实使我的代码更加整洁!