有没有一种简单的方法来确定一个表达式是否包含一个不包含在例如MemberExpression中的ParameterExpression。查找表达式是否包含“孤独”参数表达式
实施例:
x => x.Method() ? x : null
< = 1 x的occurence而没有任何进一步的评估x的
x => x.Method() ? x.Property : null
< = 0 OCCURENCES而没有任何进一步的评估
简而言之我的使用情况是,我知道方法(没有参数)和属性值,并且想知道这是否足以评估表达式而不从存储中获取整个“对象”。
编辑: 我的例子可能是简化。还有更多需要处理的表达式类型(例如UnaryExpression)。
x => ((Cast) x).Property
< = 0 x的出现次数没有任何进一步的评估
我在寻找的答案,以下问题:
给出的表达式,如果我知道的所有方法的返回值和属性值输入参数但不是参数值本身,我可以评估表达式吗?
什么版本的.NET您使用的是? –
它的.net 3.5(但我也有一个.net 4版本,我可以使用这个) – lindstromhenrik