你应该使用退货吗?哪个是最佳的?

时间:2012-09-27 13:54:14

标签: c#

哪一个更优化?你使用哪一个是否重要?

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

//mode code here 

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

5 个答案:

答案 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的粉丝,也不是在同一个方法中放置多个返回。但如果我必须选择,我宁愿多次'返回'。