5

通常、私は.NETをC#でプログラムしますが、現在VB.NETで記述されたプロジェクトを更新していて、For Eachループで奇妙な構文が使用されていることに気づきました。

違いはありますか

For Each x in collection.Items
    ...
Next

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

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

4

4 に答える 4

5

これは、MSDNリファレンスでそのように指定されています。

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

オリジナルはここにあります-備考セクションの5番目のパラグラフ:

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

于 2012-08-06T14:31:29.313 に答える
3

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

于 2012-08-06T14:28:11.817 に答える
1

機能に違いはありません。これは、間違いを回避し、VB6との下位互換性を確保するためだけのものです。個人的には使用しません。

于 2012-08-06T14:28:25.433 に答える
0

nextどちらがどのに属するかを注釈するためにありforます。コンパイラがとが一致するかどうかを確認するかどうかはわかりませんがfornext一致しない場合は失敗する可能性があります

于 2012-08-06T14:28:31.907 に答える