Оценка логического условия с использованием лямбда-выражения без сохранения его в переменной [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Оценка логического условия с использованием лямбда-выражения без сохранения его в переменной [закрыто]

Сообщение Anonymous »


У меня есть простая оценка внутри цикла:

var messageDateOk = true; if (dateFrom != null && messageDate < dateFrom.Value) сообщениеДатаОк = ложь; if (dateTo != null && messageDate > dateTo.Value) сообщениеДатаОк = ложь; если (!messageDateOk) { //Записываем что-нибудь в журнал приложения продолжать; } Я мог бы заменить messageDateOk, используя, например, этот код:

Func checkDate = (от, до, messageDate) => { if (from != null && messageDate.Date < from.Value) вернуть ложь; if (to != null && messageDate.Date > to.Value) вернуть ложь; вернуть истину; }; if (!checkDate(dateFrom, dateTo, messageDate) { //Запись журнала продолжать; } Мне не нравится явное объявление Func. Есть ли более элегантный способ сделать это? В данном конкретном случае я использую C# 7.3, но буду признателен за предложение даже по более новой версии C#.

Я знаю, что смогу это сделать:

if (dateFrom != null && messageDate < dateFrom.Value) { //Запись журнала продолжать; } if (dateTo != null && messageDate > dateTo.Value) { //Запись журнала продолжать; } ... но в "образовательных" целях мне бы хотелось увидеть что-нибудь с использованием функционального программирования.

Возможно, того, что я ищу, не существует. В этом случае и лямбды, и локальные функции требуют слишком много кода для такой простой задачи. Итак, на мой взгляд, лучший способ написать это — тот, который указан в предыдущем блоке кода вопроса
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»