为什么在方法结束时返回是一种好习惯

时间:2009-04-02 07:36:29

标签: c# oop

  

可能重复:
  Should a function have only one return statement?

一位程序员问我为什么总是在方法结束时返回?

我们都被教导在方法中只有一个return语句,而不是遍布整个代码的多个语句。

有什么好的理由吗?

2 个答案:

答案 0 :(得分:19)

有一种思想流派认为你应该有一个单一的入口点和一个退出点。如果你有更多,你应该重构代码以使其更清晰。

我不赞成这个想法,并经常使用保护条款,如下:

public void DoSomethingOnMales(Person p)
{
    if (p.Sex != Sex.Male)
        return;
    ....
}

当然,你仍然应该尝试限制回报的数量,因为它们中的太多,虽然并不坏,但这是一个很好的迹象表明你有一个复杂的方法,应该尽量简化它

答案 1 :(得分:1)

您可以随时返回,它不必在方法的最后。唯一需要注意的是,您没有任何无法访问的代码:永远无法访问的代码,因为您总是在到达之前返回。

如果您担心自己可能会混淆自己,导致您犯错误,请在方法结束前返回,然后避免。然而,我毫不犹豫地在任何地方使用return语句,因为它可能很有用。