1

重複の可能性:
不必要な作業を避けるために関数の先頭で return を使用するのは悪いスタイルですか?

個人的な好み以外に、早めに戻ったり、次のような長いメソッドを囲む if を使用したりすることについて、他に考慮すべき点はありますか?

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

    ...
}

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

       return;
    }
}
4

1 に答える 1

2

使用する

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

       return;
    }
}

if ブロック内でテストする条件が複数ある場合は、少し複雑になる可能性があります。そのような:

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

この場合、早く戻った場合、ネスティングの多くを減らすことができます。

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

実際、ReSharper ユーザーとして、私はコードの再フォーマットの提案「入れ子を減らすために反転する」を頻繁に使用します。最終的には好みの問題だと思いますが、中かっこに一致する入れ子になったifがあまりない場合は、もう少し読みやすいように思えます。

于 2012-11-25T21:36:50.073 に答える