public bool Execute(object obj) { if (m_QExpression.Count == 0) { throw new Exception("表达式空"); } LogicStatement state = m_QExpression[0]; bool result = state.Execute(obj); int index = 0; while (index < m_QLogic.Count) { string logic = m_QLogic[index]; if (logic == "||") { result = result || m_QExpression[index + 1].Execute(obj); } else//&& { result = result && m_QExpression[index + 1].Execute(obj); } ++index; } return(result); }
public IfLogicStatement(LogicExpression condition, LogicStatement statement) { this.Condition = condition; this.Statement = statement; }
public IfElseLogicStatement(LogicExpression condition, LogicStatement statement, LogicStatement elseStatement) { this.Condition = condition; this.Statement = statement; this.ElseStatement = elseStatement; }
public WhileLogicStatement(LogicExpression condition, LogicStatement statement) { this.Condition = condition; this.Statement = statement; }