2012-08-06 10 views
5

通常、私はC#で.NETをプログラミングしますが、現在はVB.NETで書かれたプロジェクトを更新しており、For Eachループで使用されている興味深い構文に気付いています。各xについて...次へFor Each x ...次へx

For Each x in collection.Items 
    ... 
Next 

For Each x in collection.Items 
    ... 
Next x 

の間に違いはありますか?

私はここのコードで両方見たことがあり、なぜ誰かが2番目のバリエーションを使用するのか不思議でした。

+2

は私の知る限り、それだけで読みやすいループ(ネストされた)非常に大きな保つためにだ... – Mr47

+1

私はできませんVB6では 'Next'は' Next x'よりも速かったと思う - VB.NETでもそれはまだ真実だとは思わない。 –

答えて

5

いない場合これはMSDNのリファレンスにそのように指定されて失敗することがあります:

あなたは次のステートメントで要素を指定することもできます。この は、特に、 がFor Eachループにネストされている場合に、プログラムの可読性を向上させます。対応するFor Eachステートメントに表示される同じ変数を と指定する必要があります。

オリジナルがここで見つけることができます - 備考セクションの下の第五のパラ:

http://msdn.microsoft.com/en-us/library/5ebk1751.aspx

3

第2のバージョンは、特にネストされたループがたくさんある読者にとっては、より明確になります。他の理由はありません。詳細については、MSDNを参照してください。

+1

あなたのリンクはこの記事の笑に行きます。しかし、ありがとう。 –

+0

ありがとうと謝罪します。一定。 –

1

機能に違いはありません。間違いやVB6との下位互換性を避けるために役立つだけです。個人的に、私はそれを使用しません。

0

nextが属するforの注釈があります。私は、コンパイラのチェックがfornext試合、ということを見てかはわからないが、多分それは彼らが

関連する問題