6
public static Expression<Func<T, bool>> OrElse<T>(this
Expression<Func<T, bool>> expr1, Expression<Func<T, bool>> expr2)
{
ParameterExpression parameter = Expression.Parameter(typeof(T));
ReplaceExpressionVisitor leftVisitor =
new ReplaceExpressionVisitor(expr1.Parameters[0], parameter);
Expression left = leftVisitor.Visit(expr1.Body);
ReplaceExpressionVisitor rightVisitor =
new ReplaceExpressionVisitor(expr2.Parameters[0], parameter);
Expression right = rightVisitor.Visit(expr2.Body);
return Expression.Lambda<Func<T, bool>>(Expression.OrElse(left, right), parameter);
}
因爲我有另一種方法,其中唯一的區別就是在return語句表達,如何通過Expression.OrElse
作爲參數傳遞給方法(我的其他方法使用AndAlso
)?傳遞一個BinaryExpression作爲參數
由於方法接近完全相同,所以我希望將一個通用方法的表達式作爲參數傳遞。
我試過通過BinaryExpression
沒有成功。
嘗試使用對象。 – jdweng