Я наткнулся на следующее условие в программе, которую я перенял у другого разработчика:
if (obj.Performance <= LOW_PERFORMANCE)
{
obj.NeedsChange = true;
}
else
{
obj.NeedsChange = false;
}
Я считаю, что этот код является избыточным и безобразным, поэтому я изменил его на то, что мне показалось простым логическим назначением, основанным на сравнении:
obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE;
Увидев это, кто-то, просматривая мой код, заметил, что, хотя мои изменения функционально верны, это может смутить кого-то, кто смотрит на них. Он считает, что использование троичного оператора делает это назначение более ясным, тогда как мне не нравится добавление более избыточного кода:
obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false;
Он рассуждает о том, что делать что-то самым кратким способом не стоит, если это заставляет другого разработчика останавливаться и ломать голову над тем, что вы сделали.
Реальный вопрос здесь заключается в том, какой из этих трех методов присвоения значения логическому значению obj.NeedsChange
является наиболее понятным и наиболее поддерживаемым?