哪一个更优化?你使用哪一个是否重要?
If (condition is true)
{
MessageBox.Show("bad data");
return;
}
//mode code here
或
If (condition is true)
{
MessageBox.Show("bad data");
}
else
{
//mode code here
}
答案 0 :(得分:2)
两者在功能上是相同的。在行为或表现方面,两者都不优于另一方。这里唯一真正的问题是可读性,这将根据示例的细节和所涉及的编程团队而有所不同。简而言之,选择你想要的任何东西。
请注意,您的示例应该更加完整,以使这些断言成立。它应该真的是比较;
public static void returnMethod()
{
if (true)
MessageBox.Show("bad data");
//restOfMethod
}
使用:
public static void elseMethod()
{
if (true)
MessageBox.Show("bad data");
else
{
//restOfMethod
}
}
答案 1 :(得分:1)
我认为你的意思更像是
If (condition is true)
{
MessageBox.Show("bad data");
return;
}
...more code here...
VS
If (condition is true)
{
MessageBox.Show("bad data");
}
else
{
...more code here...
}
不,没有性能差异。
这更多地取决于设计偏好。有些人是顽固的 - 从来没有使用过 - 退出方法,而其他人喜欢保持他们的代码简单和整洁,如果使用返回有助于这样做,那就更好了。
答案 2 :(得分:0)
这取决于一些事情。在条件之后您是否有其他代码不再适用?如果是这样,那么返回将更加优化,因为它会阻止即将发生的语句运行。
另一个想法是如何放置它?如果这是一个有返回的方法,你会使用它。同样,如果不适用于使周围的函数接受返回,则您不希望使用 return 。
这有意义吗?
答案 3 :(得分:0)
我说永远不会有一个空的其他{}声明,除非它只是一个占位符,在这种情况下做类似的事情
else
{
//Todo: Fill in logic to handle the else case, waiting for business to get back to me
}
就我个人而言,我认为在“if”内部返回是好的,但是如果下面没有任何内容,那么写下“返回”;浪费了几百个像素。如果它用几个像素做同样的事情并且没有任何难以理解的东西,我总是会这样做。
答案 4 :(得分:0)
在if-else和return会做同样事情的场景中(其他答案中提供了一些例子),我认为可读性才是最重要的。
我认为对于一个'如果',如果你写'其他'或直接'返回'并不重要。 当一些'if-else'语句嵌套时会变得更糟。在方法中也可以使用多个“返回”,这是非常难以理解的。
我不是一个关于嵌套if-else的粉丝,也不是在同一个方法中放置多个返回。但如果我必须选择,我宁愿多次'返回'。