0

其中哪一个更优化?你用哪一个有关系吗?

If (condition is true)
{
    MessageBox.Show("bad data");
    return;
}

//mode code here 

或者

If (condition is true)
{
    MessageBox.Show("bad data"); 
}
else
{
    //mode code here
}
4

5 回答 5

2

两者在功能上是相同的。在行为或表现方面,两者实际上都不优于另一个。这里唯一真正的问题是可读性,这将根据示例的具体情况和所涉及的编程团队而有所不同。所以简而言之,选择任何你想要的。

请注意,您的示例可能应该更完整一些,才能使这些断言成立。真的应该比较;

public static void returnMethod()
{
    if (true)
        MessageBox.Show("bad data");

    //restOfMethod
}

和:

public static void elseMethod()
{
    if (true)
        MessageBox.Show("bad data");
    else
    {
        //restOfMethod
    }
}
于 2012-09-27T13:59:28.403 回答
1

我想你的意思更像是

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有帮助,那就更好了。

于 2012-09-27T14:02:37.413 回答
0

我会说永远不要有一个空的 else {} 语句,除非它只是一个占位符,在这种情况下做类似的事情

    else
    {
        //Todo: Fill in logic to handle the else case, waiting for business to get back to me
    }

就我个人而言,我认为在“if”中返回很好,但如果在 if 之下没有任何内容,请写“return;”。浪费了几百个像素。如果它用几个像素做完全相同的事情并且不难理解,我会一直坚持下去。

于 2012-09-27T14:04:18.707 回答
0

在 if-else 和 return 会做同样事情的情况下(其他答案中提供了一些示例),我认为可读性很重要。

我认为对于一个“如果”来说,写一个“其他”或直接“返回”并不重要。当嵌套一些“if-else”语句时,情况会变得更糟。在方法中使用多个“返回”也可能非常难以理解。

我不喜欢嵌套 if-else,也不喜欢在同一个方法中放置多个返回。但如果我必须选择,我更喜欢有多个“回报”。

于 2012-09-27T14:11:52.643 回答
0

这取决于几件事。条件之后是否有其他代码不再适用?如果是这样,那么 return 会更优化,因为它会阻止即将发生的语句运行。

另一个想法是如何放置?如果这是在一个有返回的方法中,你会使用它。同样,如果不适用让周围的函数接受返回,你就不想使用return

这有什么意义吗?

于 2012-09-27T13:57:38.567 回答