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

3 c# oop

可能重复:
函数是否只有一个return语句?

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

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

有什么好理由吗?

ang*_*son 19

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

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

public void DoSomethingOnMales(Person p)
{
    if (p.Sex != Sex.Male)
        return;
    ....
}
Run Code Online (Sandbox Code Playgroud)

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

  • 好的经验法则,所以+1。在我看来,函数末尾的返回只是默认情况,并且取决于函数的类型,提前返回要么是错误(如您的守卫条件),要么是早期成功(即当寻找东西)。 (2认同)