Да.
Особенно с именами, похожими на выбранные имена, т.е. CanDoSomething
и DoSomething
это совершенно ясно любому компетентному программисту, что второй код делает: «тогда и только тогда, когда условие выполняется, сделать что-то и вернуть результат ». «Тогда и только тогда, когда» является основным значением короткозамкнутого оператора &&
.
Первый код свернут и излишне длинный, не указав больше информации, чем второй код.
Но в целом два условия не могут образовывать такие близкие отношения (как в CanDo
и Do
), и, возможно, было бы лучше их логически отделить, потому что помещение их в один и тот же условный порядок может не иметь интуитивного смысла.
Многие люди заявляют, что первая версия «намного понятнее». Я бы очень хотел услышать их аргументы. Я не могу думать ни о чем.
С другой стороны, есть это тесно связано (хотя и не вполне тот же код):
if (condition)
return true;
else
return false;
это должно всегда быть преобразованы к этому:
return condition;
Нет исключение. Это краткое и более читаемое для того, кто компетентен на этом языке.
Что бы ни было легко читать и поддерживать, это «лучший» способ. – dotariel
Это зависит: http://blogs.msdn.com/b/ericlippert/archive/2010/02/01/style-follows-semantics.aspx – jason
@ XSaint Хорошая работа, заявляющая очевидное, теперь реальный вопрос: какой из них легче читать и поддерживать. Последнее очень хорошо объяснено в ссылке Джейсона! –