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