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