예제 #1
0
 protected ExpressionComparer(Expression toCompareTo, ExpressionComparerOptions options, Func <Expression, Expression, bool?> prefilter)
 {
     this.result        = true;
     this.currentObject = toCompareTo;
     this.options       = options;
     this.prefilter     = prefilter;
 }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
 protected ExpressionHasher(ExpressionComparerOptions options, Func <Expression, int> prefilter)
 {
     this.options   = options;
     this.prefilter = prefilter;
 }
 public ExpressionEqualityComparer(ExpressionComparerOptions options)
 {
     this.options = options;
 }