提早返回或使用大方法?

时间:2012-11-25 21:27:27

标签: coding-style

  

可能重复:
  Is it bad style to use return at the beginning of a function to avoid doing unnecessary work?

除了个人品味之外,还有其他考虑因素可以提前返回,或者使用if中包含的长方法:

foo(bool bar)
{
    if(!bar)
    {
       return; 
    }

    ...
}

VS

foo(bool bar)
{ 
    if (bar)
    {
       ...

       return;
    }
}

1 个答案:

答案 0 :(得分:2)

使用

foo(bool bar)
{ 
    if (bar)
    {
       ...

       return;
    }
}
如果你有多个条件要在if-block中测试,那么

会有点毛茸茸。如:

foo(bool bar)
{ 
    if (bar)
    {
       ...
        if (baz)
        {
            ...
            if (barbaz)
            {
                ...
            }
        }
        return;
    }
}

在这种情况下,如果你提前返回,你会减少大量的嵌套。

foo (bool bar)
{
    if (!bar) return;
    ...
    if (!baz) return;
    ...
    if (!barBaz) return;
    ...
    return;
}

事实上,作为ReSharper用户,我经常使用代码重新格式化sugestion“反转if if to reduce nesting”。最后我认为这是一个偏好的东西,但对我而言,当没有太多嵌套ifs来匹配大括号时,它似乎更具可读性。