给定如下表达式:
Int32 five = 5;
Express(num => num == five);
Express
类似的东西在哪里
void Express(Expression<Predicate<Int32>> predicatesGonnaPredicate)
{
....
}
在解析上面的表达式时,我如何以编程方式确定五个已关闭?我可以想到很多黑客方法来做到这一点,但是必须有一些适当的方法来识别这一点?
给定如下表达式:
Int32 five = 5;
Express(num => num == five);
Express
类似的东西在哪里
void Express(Expression<Predicate<Int32>> predicatesGonnaPredicate)
{
....
}
在解析上面的表达式时,我如何以编程方式确定五个已关闭?我可以想到很多黑客方法来做到这一点,但是必须有一些适当的方法来识别这一点?
如果你想用它们的值替换所有不依赖于 lambda 参数的子表达式,你可以使用PartialEval
Matt Warren 的文章Building an IQueryable Provider - Part III中的内容。
例如,在您的情况下,结果将是一个表达式num => num == 5
。