由于性能原因,GitHub页面建议“如果您需要使用不同的参数多次运行相同的表达式,我建议解析一次,然后多次调用解析后的表达式。”
我有这样的课:
public class Conditional : TemplateElement
{
public string Condition { get => _condition; set => _condition = value; }
public Lambda Parsed { get => ...; private set => ... }
public Conditional(string condition)
{
Condition = condition;
...
ParseExpression();
}
private void ParseExpression()
{
var target = new Interpreter();
Lambda = target.Parse(Condition, ???);
}
}
“条件”字符串可以采用以下形式:
item["CreatedDate"] <= DateTime.Today.AddDays(-2)
现在,在条件类实例化的那一刻,我不知道“项目”包含什么,我希望它被解析以便以后可以使用它。Lambda 应该将 Condition 解析为布尔值。
我不确定如何实现这一点,文档对我帮助不大。我应该将“项目”定义为参数数组中的特定类型吗?