Я воссоздал класс Predicatebuilder в отдельном проекте C # и пытаюсь использовать его в проекте VB.NET, но все равно получаю следующую ошибку:
Не удалось разрешить перегрузку, поскольку доступное «ИЛИ» не принимает такое количество аргументов.
когда использую вот так:
Dim predicate = PredicateBuilder.False(Of t_Quote)()
predicate = predicate.Or(Function(q) q.iQuoteType = iQuoteType)
Имеется ссылка на соответствующий проект, я использую правильный оператор импорта, и все это компилируется без каких-либо ошибок.
Есть идеи, где я ошибаюсь?
Вот класс PredicateBuilder на C #, который я использую:
публичный статический класс PredicateBuilder {публичное статическое выражение> 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); }}