使用else语句与未使用的赋值

时间:2011-06-29 14:39:44

标签: c# if-statement

我对发布here:

的问题提出了类似的问题

我在mvc控制器中有一个if语句,如下所示:


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

但是如果条件为假,则永远不会使用TempData [“searchParameter”]。保留上面的代码或将其中的TempData [“searchParameter”]赋值放在else语句中是一种更好的做法吗?

4 个答案:

答案 0 :(得分:1)

将其放在else声明中。

它使逻辑流程更加明确,省略了不必要的操作,这会对性能产生积极的影响。

答案 1 :(得分:0)

我使用else语句。如果将来做出任何改变,将使其更加清晰和安全。

我想这也是很好的做法。

答案 2 :(得分:0)

在您的示例中,无论TempData["searchParameter"]是否submitButton != "Search",都会分配else。这是你期待的行为吗?

如果没有,{{1}}语句将为您解决此问题。

答案 3 :(得分:0)

在您的特定情况下,运行不必要的代码绝不是一个好主意,因为它可以轻松避免。在这种情况下,这似乎不是什么大问题,但这不是一个好习惯。

更一般地说,即使没有它,代码流也是相同的,我总是使用else语句。例如:

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

其他并非严格必要,一些代码分析工具会建议删除它。但我更喜欢通过浏览代码结构来说明只有其中一个块实际上会被执行的明确性。如果没有else,则必须分析第一个块以确定它不包含第二个块。