2012-08-06 55 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比赛,但可以想象,如果他们不这样做