2017-08-21 4 views
0

次のコードではどのような方法がベストプラクティスですか?ベストプラクティス:ツリーまたは「Early Out」の場合

If Condition = False Then End 
' Rest of my code. 

OR

If Condition = True Then 
    'Rest of my code. 
Else 
    End 
End if 

コンディションが私のコードでは満たされない場合、私は不必要私のコードのすべてを実行する必要はありません。条件が満たされていないと実行されないようにするには、コードの上にあるIf文を使用する方が良いでしょうか?また、これを処理するために、より多くのfleshed Out文を使用する方が良いでしょうか?

後者のコードでは、技術的に「終了」が必要ではなく、コードの実行を邪魔します。

+2

それは依存しており、意見があります。 –

+0

私は厳しい規則はないと理解していますが、この問題に関するベストプラクティスはありませんか?たとえば、Early Outコードが機能に優れていることを読んだことがあります。メインモジュールにも同じことが適用されますか? – Nicolas

+0

それは本当に主観的です、あなたの例はどちらかのケースを作るにはあまりにも些細です。 *ネスティングレベルの多くは[Arrow Anti-Pattern](http://wiki.c2.com/?ArrowAntiPattern)と見なすことができます –

答えて

0

これは、変数Conditionのタイプによって決まります。これは最初に同じように見えるかもしれませんが、ConditionBooleanタイプであり、ここでは定義されていないと仮定した場合のみです。

  1. タイプがBooleanの場合:
    その後、それはあなたが選択した1あなた次第です。どちらも安全で、私はこれがあなたが好む意見に基づいていると言います。

  2. タイプないBoolean場合:Conditionについて
    は、例えば、ありますLongまたはIntegerであり、0(つまり、falseを意味する)ではなく、(つまり、を意味する)ではない値を持ち、例えば、Condition = 1の場合、それらは異なって振る舞います。 ...

    • 最初のソリューションは、コード
    • の残りの部分を実行しますが、第2の解決策は、コードを終了します。
0

そのようにそれを参照してください:ウィッヒ条件は、(真または偽)頻繁に発生する可能性が最も高いです。そして、あなたのコードでこの条件を使用するよりも。だからあなたのsub \ functionが実行されるとき、より少ないコードで動作する必要があります。

if条件がA else Bの場合 Aよりも頻繁に起こっている場合は、Aコードを最初に配置してください。そうすれば、コードはより高速になります。

関連する問題