是否有一种简单的方法可以确定表达式是否包含未进一步包装的 ParameterExpression,例如 MemberExpression。
例子:
x => x.Method() ? x : null
<= 1 次出现 x 没有任何进一步的评估
x => x.Method() ? x.Property : null
<= 0 次出现 x 没有任何进一步的评估
简单地说,我的用例是我知道方法(无参数)和属性值,并想知道这是否足以评估表达式而无需从存储中获取整个“对象”。
编辑:我的例子可能是为了简化。还有更多的表达式类型需要处理(例如 UnaryExpression)。
x => ((Cast) x).Property
<= 0 次出现 x 没有任何进一步的评估
我正在寻找以下问题的答案:
给定一个表达式,如果我知道输入参数的所有方法返回值和属性值,但不知道参数值本身,我可以评估表达式吗?