protected override Expression VisitBinary(BinaryExpression expression) { if (expression.Operator == op) { list = expression.Left.BreakByOperator(list, op); list = expression.Right.BreakByOperator(list, op); } else { list.Add(expression); } return expression; }
protected override Expression VisitBinary(BinaryExpression expression) { returnType = expression.Operator.ReturnType(); return expression; }
protected virtual Expression VisitBinary(BinaryExpression expression) { Expression left = Visit(expression.Left); Expression right = Visit(expression.Right); if (left != expression.Left || right != expression.Right) return Expression.Binary(left, expression.ExpressionType, right); return expression; }