一位程序员问我为什么总是在方法结束时返回?
我们都被教导在方法中只有一个return语句,而不是遍布整个代码的多个语句。
有什么好的理由吗?
答案 0 :(得分:19)
有一种思想流派认为你应该有一个单一的入口点和一个退出点。如果你有更多,你应该重构代码以使其更清晰。
我不赞成这个想法,并经常使用保护条款,如下:
public void DoSomethingOnMales(Person p)
{
if (p.Sex != Sex.Male)
return;
....
}
当然,你仍然应该尝试限制回报的数量,因为它们中的太多,虽然并不坏,但这是一个很好的迹象表明你有一个复杂的方法,应该尽量简化它
答案 1 :(得分:1)
您可以随时返回,它不必在方法的最后。唯一需要注意的是,您没有任何无法访问的代码:永远无法访问的代码,因为您总是在到达之前返回。
如果您担心自己可能会混淆自己,导致您犯错误,请在方法结束前返回,然后避免。然而,我毫不犹豫地在任何地方使用return语句,因为它可能很有用。