如何知道变量/属性何时被关闭?

本文关键字:何时 属性 何知道 变量 | 更新日期: 2023-09-27 18:09:59

给定如下表达式:

Int32 five = 5;
Express(num => num == five);

其中Express类似于

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

解析上面的表达式时,如何用编程方式确定5已被关闭?我可以想出很多方法来做,但一定有一些合适的方法来识别它?

如何知道变量/属性何时被关闭?

如果你想用lambda的值替换所有不依赖于参数的子表达式,你可以使用Matt Warren的文章构建一个可查询的提供者-第三部分中的PartialEval

例如,在您的例子中,结果将是一个表达式num => num == 5