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

可能重复:
一个函数应该只有一个return语句吗?

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

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

有什么好理由吗?

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

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

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

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

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

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