1

由于性能原因,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 解析为布尔值。

我不确定如何实现这一点,文档对我帮助不大。我应该将“项目”定义为参数数组中的特定类型吗?

4

0 回答 0