private static Expression BelongsToInverseInterval(Expression variable, Expression from, Expression to) { var greaterThanOrEqualTo = DynamicBuilder.BuildOperator(ExpressionType.GreaterThanOrEqual, variable, to); var lessThanOrEqualFrom = DynamicBuilder.BuildOperator(ExpressionType.LessThanOrEqual, variable, from); return(DynamicBuilder.BuildLogicalAnd(greaterThanOrEqualTo, lessThanOrEqualFrom)); }
public void TakeStep() { var addStep = DynamicBuilder.BuildOperator(ExpressionType.Add, Variable, Step); var convert = DynamicBuilder.BuildConvert(addStep, typeof(object)); var assign = Expression.Assign(Variable, convert); assign.RunAndDropValue(); IsOver = !IsBelongsToInterval(Variable, From, To); }