예제 #1
0
 protected override bool VisitLambda(LambdaExpression x, LambdaExpression y)
 {
     if (this.DefaultVisit(x, y))
     {
         if (x.Parameters.Count != y.Parameters.Count)
         {
             return(false);
         }
         if (this.ParametersByIndex)
         {
             ExpressionEqualityComparer.ParameterMaps item = new ExpressionEqualityComparer.ParameterMaps(Lambda.GetParametersMap(x), Lambda.GetParametersMap(y));
             this._paramMaps.Push(item);
             try
             {
                 return(this.Visit(x.Body, y.Body));
             }
             finally
             {
                 this._paramMaps.Pop();
             }
         }
         if (VisitLists <ParameterExpression>(x.Parameters, y.Parameters, new Func <ParameterExpression, ParameterExpression, bool>(this, this.VisitParameter)))
         {
             return(this.Visit(x.Body, y.Body));
         }
     }
     return(false);
 }
예제 #2
0
            public bool Equals(Expression x, IDictionary <ParameterExpression, int> xParameterIndexMap, Expression y, IDictionary <ParameterExpression, int> yParameterIndexMap)
            {
                bool flag;

                if (x == y)
                {
                    return(true);
                }
                if ((x == null) || (y == null))
                {
                    return(false);
                }
                if (!this.ParametersByIndex)
                {
                    return(this.Visit(x, y));
                }
                ExpressionEqualityComparer.ParameterMaps item = new ExpressionEqualityComparer.ParameterMaps(xParameterIndexMap ?? ExpressionEqualityComparer.EmptyMap, yParameterIndexMap ?? ExpressionEqualityComparer.EmptyMap);
                this._paramMaps.Push(item);
                try
                {
                    flag = this.Visit(x, y);
                }
                finally
                {
                    this._paramMaps.Pop();
                }
                return(flag);
            }
예제 #3
0
 internal IDictionary <ParameterExpression, int> < VisitParameter > b__32_1(ExpressionEqualityComparer.ParameterMaps p)
 {
     return(p.Y);
 }