我在一个单独的 C# 项目中重新创建了 Predicatebuilder 类,我试图在 VB.NET 项目中使用它,但我不断收到以下错误:
重载解析失败,因为没有可访问的“或”接受此数量的参数。
当我像这样使用它时:
Dim predicate = PredicateBuilder.False(Of t_Quote)()
predicate = predicate.Or(Function(q) q.iQuoteType = iQuoteType)
引用了 relivant 项目,我使用了正确的导入语句,它全部编译没有任何错误。
知道我哪里出错了吗?
这是我正在使用的 C# 中的 PredicateBuilder 类:
公共静态类 PredicateBuilder { public static Expression> True() { return f => true; } 公共静态表达式> False() { return f => false; }
public static Expression<Func<T, bool>> Or<T>(this
表达式> expr1, 表达式> expr2) { var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast()); return Expression.Lambda> (Expression.OrElse(expr1.Body, invokedExpr), expr1.Parameters); }
public static Expression<Func<T, bool>> And<T>(this
表达式> expr1, 表达式> expr2) { var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast()); return Expression.Lambda> (Expression.AndAlso(expr1.Body, invokedExpr), expr1.Parameters); } }