Использование оператора else против неиспользованного присваивания - PullRequest
0 голосов
/ 29 июня 2011

У меня есть вопрос, аналогичный тому, который был отправлен здесь:

У меня есть оператор if в контроллере mvc, который выглядит следующим образом:


if (submitButton != "Search")
{
ModelState.Clear();
}
TempData["searchParameter"] = searchParameter;

однакоесли условие ложно, TempData ["searchParameter"] никогда не используется.Лучше оставить код, как указано выше, или поместить назначение TempData ["searchParameter"] в оператор else?

Ответы [ 4 ]

1 голос
/ 29 июня 2011

Поместите его в оператор else.

Это делает логический поток более явным, и ненужная операция исключается, что положительно влияет на производительность.

0 голосов
/ 29 июня 2011

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

В целом, я всегда использую оператор else, даже если поток кода был бы идентичен без него. Например:

if(null == foo) {
  return false;
} else {
  foo.Bar();
  return true;
}

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

0 голосов
/ 29 июня 2011

В вашем примере TempData["searchParameter"] назначается независимо от того, submitButton != "Search". Это поведение, которое вы ожидаете?

Если нет, оператор else решит эту проблему за вас.

0 голосов
/ 29 июня 2011

Я бы использовал инструкцию else.Делает это яснее и безопаснее, если в будущем будут сделаны какие-либо изменения.

Я думаю, это также хорошая практика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...