public abstract class ExpressionVisitor {
protected virtual Expression VisitBinary(BinaryExpression b) {
Expression left = this.Visit(b.Left);
Expression right = this.Visit(b.Right);
Expression conversion = this.Visit(b.Conversion);
if (left != b.Left || right != b.Right
|| conversion != b.Conversion) {
if (b.NodeType == ExpressionType.Coalesce
&& b.Conversion != null)
return Expression.Coalesce(
left, right,
conversion as LambdaExpression);
else
return Expression.MakeBinary(
b.NodeType,
left, right,
b.IsLiftedToNull, b.Method);
}
return b;
}
// zbytek kdu vynechn ...
}
