Как вернуть false, если истинно только одно конкретное условие и нет других?C#

Место общения программистов C#
Ответить
Anonymous
 Как вернуть false, если истинно только одно конкретное условие и нет других?

Сообщение Anonymous »

В следующем (перефразированном) коде я проверяю различные условия, обновляю их и планирую одно уведомление независимо от количества измененных условий. Если ни одно из условий не изменено, уведомление не должно выходить. Кроме того, есть одно особое условие, которое не вызывает уведомление в случае его изменения.

Код: Выделить всё

public bool Update() {
bool shouldNotify = false;

if (SpecialConditionChanged())
UpdateSpecialCondition();

if (Condition1Changed()) {
UpdateCondition1();
shouldNotify = true;
}

if (Condition2Changed()) {
UpdateCondition2();
shouldNotify = true;
}

...

return shouldNotify;
}
Этот код работает, но он очень многословен и требует повторной установки флага каждый раз. Я спрашиваю, есть ли более элегантное и эффективное решение. Что-то, что вернет false, если изменились либо нулевые условия, либо только специальное условие, но вернет true, если изменилось какое-либо из оставшихся условий.
Я думал об использовании bool[ ] (так же подробно); Я думал об использовании счетчика (так же повторяющегося); Я думал о том, чтобы добавить дополнительный if или все условия вместе, чтобы один раз изменить логическое значение (существует много условий), но ничего из того, о чем я не думал, не было чище, чем эта версия.
Я что-то упустил, что могло бы улучшить внешний вид или работу?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -no-others
Ответить

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

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

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

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

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