protected ExpressionComparer(Expression toCompareTo, ExpressionComparerOptions options, Func <Expression, Expression, bool?> prefilter) { this.result = true; this.currentObject = toCompareTo; this.options = options; this.prefilter = prefilter; }
public static int Hash(Expression expression, ExpressionComparerOptions options, Func <Expression, int> prefilter = null) { var hasher = new ExpressionHasher(options, prefilter); hasher.Visit(expression); return(hasher.hashCode); }
public static bool Equals(Expression left, Expression right, ExpressionComparerOptions options = ExpressionComparerOptions.None, Func <Expression, Expression, bool?> prefilter = null) { var visitor = new ExpressionComparer(right, options, prefilter); visitor.Visit(left); return(visitor.result); }
protected ExpressionHasher(ExpressionComparerOptions options, Func <Expression, int> prefilter) { this.options = options; this.prefilter = prefilter; }
public ExpressionEqualityComparer(ExpressionComparerOptions options) { this.options = options; }