Как вернуть 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

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