Why is it good practice to return at the end of a method
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Should a function have only one return statement?
一个程序员同事问我,为什么我们总是要在一个方法结束时返回?
我们都被教导在一个方法中总是只有一个返回语句,而不是在整个代码中有多个返回语句。
有什么好的理由吗?
有一个思想流派认为你应该有一个入口点和一个出口点。如果您有更多的代码,您应该重构代码以使其更清晰。
不过,我不赞同这种想法,经常使用如下的保护条款:
1 2 3 4 5 6 | public void DoSomethingOnMales(Person p) { if (p.Sex != Sex.Male) return; .... } |
当然,您仍然应该尝试限制返回的数量,因为其中太多的返回,尽管它们本身并不糟糕,但很好地表明您有一个复杂的方法,并且应该尝试简化它。
您可以随时返回,不必在方法的末尾。唯一需要注意的是,您没有任何无法访问的代码:永远无法访问的代码,因为您总是在到达之前返回。
如果你担心你会迷惑自己,导致你犯错误,在方法结束前返回,那么就避免它。不过,只要我愿意,我随时都可以使用RETURN语句,因为它是有用的。