Как я могу вызвать функцию (выражение > Предикат) с предикатом, который ничего не делает? - PullRequest
0 голосов
/ 24 марта 2020

У меня есть этот метод:

public async Task<List<T>> GetDocumentItemsAsync<T>(Expression<Func<T, Boolean>> predicate) where T : class

Я вызываю метод следующим образом:

var Views = await cosmosManager.GetDocumentItemsAsync<LogViews>(x => x.Activity == "Crash");

Теперь есть случай, когда я не хочу делать какие-либо проверки в все и не хотят проверять значения активности.

Есть ли способ, которым я могу вызвать этот метод, так как, когда я пытаюсь оставить параметры пустыми, я получаю сообщение об ошибке.

1 Ответ

4 голосов
/ 24 марта 2020

Вы можете использовать Null Object Pattern. Обеспечьте и перегрузите, как это выглядит:

public async Task<List<T>> GetDocumentItemsAsync<T>() where T : class
{
    return await GetDocumentItemsAsync<T>(t => true);
}

К сожалению, вы не можете просто установить по умолчанию параметр в оригинале как t => true, так как лямбда не является постоянной времени компиляции.

Полагаю, вы хотите, чтобы по умолчанию было true, но в равной степени вы могли бы сделать это false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...