2012-08-06 33 views
5

通常,我使用C#編程.NET,但是現在我正在更新用VB.NET編寫的項目,並且注意到在For Each循環中使用了一個好奇的語法。For Each x ... Next Vs.對於每個x ...下一個x

For Each x in collection.Items 
    ... 
Next 

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

之間有什麼區別?

我已經在代碼中看到了這裏,並且很好奇爲什麼有人會使用第二個變體。

+2

AFAIK,它只是幫助保持非常大的(嵌套)循環易於閱讀... – Mr47 2012-08-06 14:27:39

+1

我不能找到任何引用它,但我認爲在VB6中'Next'比'Next x'快 - 我懷疑VB.NET中仍然是這樣。 – 2012-08-06 14:59:33

回答

5

這是像這樣指定的MSDN參考它可能會失敗:

你可以選擇在Next語句中指定元素。這 提高了您的程序的可讀性,特別是如果您有嵌套For Each循環的 。您必須指定與出現在相應For Each語句中的變量 相同的變量。

原件可以在這裏找到 - 根據備註第五節段:

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

3

第二個版本對於讀者來說可以更清楚,尤其是在有很多嵌套循環的地方。沒有其他原因。有關更多信息,請參閱MSDN

+1

你的鏈接去這個職位大聲笑。但是,謝謝。 – 2012-08-06 14:32:35

+0

謝謝,並表示歉意。固定。 – 2012-08-06 14:35:40

1

功能沒有區別;它只是爲了避免錯誤和向後兼容VB6。就我個人而言,我從不使用它。

0

它在那裏標註哪個next屬於哪個for。我不知道如果編譯器會檢查該fornext比賽,但可以想象,如果他們不這樣做