关于C#:为什么在方法结束时返回是一个好的实践

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语句,因为它是有用的。