public SubstitutedFunction(Function <T1, TResult1> func1, Function <T2, TResult2> func2) : base(Lambda.Substitute <T1, TResult1, T2, TResult2>(func1.Expression, func2.Expression)) { this._func1 = func1; this._func2 = func2; }
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); }