2017-03-25 9 views
0

私はC#言語についてはかなり新しく、ずっと前にコードを書くときに何か不思議に思っています。私がループ中に書いているとき、自分の条件が必要であるかどうかを明示的に確認する必要があるかどうかを自分で確認するには、たとえば次のコードを取ることができます。whileループの前に明示的にif文を実行する必要はありますか?

以前に(他の開発者が)コードを書かれ、私は彼らがこのような何かを見ている場合は
while (_myList.Count > 0) 
{ 
    // do some work 
} 

...ベストプラクティスがある

if (_list.Count > 0) 
{ 
    while (_myList.Count > 0) 
    { 
     // do some work 
    } 
} 


は、私もこれを行うために必要なのですか?もしそうだとすれば、誰かがこの話題に光を当てて、私に最高のものを知らせてくれるの?ありがとう。

+0

第2のスニペットは役に立たない – efekctive

答えて

1

あなたがどうかを指定する必要はありません。引数を取り、オペレータから を左いただきまし比較される:ループ

何Aループがないながら、一方で

if (_list.Count > 0) 

を右。そしてwhileがtrueになると、ループを継続するようにブール値(trueまたは false)を返します。

IF何ANなステートメントがない場合:引数を取り、右にオペレータから を左いただきまし比較されます。 ifがtrueを返す限り、ブール値(trueまたは false)を返します。これが続くと、ifコードブロックでコードが実行されます。

予告:

if (_list.Count > 0) // checking for _list 
{ 
    while (_myList.Count > 0) // checking for _myList 
    { 
    } 
} 

の例では、「他の開発者」あなたドンこの場合には、_list.Countを確認する便利ことができるように、さまざまな状況にチェックを示しています_list.Count> 0のときにteループを実行しません。

結論

はしないでください:それあなたがあればと誘い込むでTEH同じリストにcheckking。

実行できる操作:特定の条件または例外が発生した場合のみ実行する場合。

0

いいえこの場合はifを追加する必要はありません。 while状態に入る前に

が評価され、あなたは同じオブジェクトではありませんあなたは_list話すとmy_listあなたのサンプルであれば< = 0

注意を反復しません。

0

第2のコード例は役に立たない。リスト数が0以下の場合、whileは実行されません。 _myListは本当にヌルだった場合、あなたは両方のあなたのコード例でNullReferenceExceptionを持っていると思います

if (_myList == null) 
    //error handling here 

_myListがnullの場合

はしかし、あなたは多分このように、確認する必要があります。

関連する問題