0

给定如下表达式:

Int32 five = 5;

Express(num => num == five);

Express类似的东西在哪里

void Express(Expression<Predicate<Int32>> predicatesGonnaPredicate)
{
    ....
}

在解析上面的表达式时,我如何以编程方式确定五个已关闭?我可以想到很多黑客方法来做到这一点,但是必须有一些适当的方法来识别这一点?

4

1 回答 1

1

如果你想用它们的值替换所有不依赖于 lambda 参数的子表达式,你可以使用PartialEvalMatt Warren 的文章Building an IQueryable Provider - Part III中的内容。

例如,在您的情况下,结果将是一个表达式num => num == 5

于 2013-04-18T20:14:28.547 回答