Метод с логическим возвратом - если еще против if - PullRequest
0 голосов
/ 21 октября 2010

Возьмем, к примеру, следующие два утверждения:

if (booleanVariable)
{
  doSomething();

  return true;
}
else
{
  return false;
}

и

if (booleanVariable)
{
  doSomething();

  return true;
}

return false;

Какой из них предпочтительнее?

Они оба возвращают один и тот же результат вконец.

Какую причину лучше использовать, чем другую?

Ответы [ 3 ]

9 голосов
/ 21 октября 2010

Лично я думаю, что самый чистый путь будет

if (booleanVariable) {
    doSomething();
}
return booleanVariable;

Перемещение избыточных возвратов за пределы блока if показывает, что вы делаете по-другому, если установлена ​​переменная.

0 голосов
/ 02 января 2015

Я бы сделал это по-другому.с тех пор ваше первое решение кода может выдать ошибку, по крайней мере, в c #, так как вам нужно будет вернуть значение вне области действия if-else.

я бы создал отдельную переменную bool и установил бы ее в значение true/ false в зависимости от результатов вашего if-теста

bool test;

if (booleanVariable)
{
  doSomething();

  test = true;
}

return test;

Теперь, если тест if не пройден, возвращаемый bool останется false по умолчанию.

0 голосов
/ 27 июня 2012

Структура if ... else обеспечивает более читаемый код, но если вы хорошо понимаете его и не хотите писать так много, просто сделайте второй: -)

...