Является ли ветвь If, которая ничего не делает, является запахом кода или хорошей практикой?

I ' Мы ответили на темы здесь (или, по крайней мере, прокомментировали ) ответами, содержащими подобный код, но мне интересно, хорошо или плохо писать серию if ветвей с одним (или более) ветвей, ничего не делающих в них, как правило, для исключения проверки на null в каждой ветке.

Пример (код C #):

if (str == null) { /* Do nothing */ }
else if (str == "SomeSpecialValue")
{
    // ...
}
else if (str.Length > 1)
{
    // ...
}

вместо:

if (str != null && str == "SomeSpecialValue")
{
    // ...
}
else if (str != null && str.Length > 1)
{
    // ...
}

И, из Конечно, это всего лишь пример, поскольку я обычно использую их с более крупными и сложными классами. И в большинстве этих случаев значение null будет означать, что ничего не делать.

Для меня это снижает сложность моего кода и имеет смысл, когда я это вижу. Итак, это хорошая или плохая форма (даже запах кода)?

5
задан Community 23 May 2017 в 10:29
поделиться