2012-08-06 19 views
5

Zazwyczaj program .NET w języku C#, ale obecnie aktualizuję projekt napisany w VB.NET i zauważyłem ciekawy składnia używana w pętlach For Each.Dla każdego x ... Next Vs. Dla każdego x ... Dalej x

Czy jest jakaś różnica między

For Each x in collection.Items 
    ... 
Next 

i

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

?

Widziałem oba w tym kodeksie i byłem ciekawy, dlaczego ktoś użyłby drugiej odmiany.

+2

AFAIK, to tylko, aby pomóc utrzymać bardzo duży (zagnieżdżone) pętle czytelny ... – Mr47

+1

nie mogę znajdź jakikolwiek odnośnik do tego, ale myślę, że w VB6 'Next' był szybszy niż' Next x' - wątpię, że to nadal jest prawdą w VB.NET. –

Odpowiedz

5

ta jest określony tak jak w Reference MSDN:

You może opcjonalnie określić element w instrukcji Next. To poprawia czytelność twojego programu, szczególnie jeśli masz zagnieżdżone dla każdej pętli. Musisz podać tę samą zmienną, co ta , która pojawia się w odpowiedniej instrukcji For Each.

Oryginał można znaleźć tutaj - piąta para w sekcji Uwagi:

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

3

Druga wersja może być bardziej czytelna dla czytelnika, szczególnie gdy istnieje wiele zagnieżdżonych pętli. Nie ma innego powodu. Aby uzyskać więcej informacji, patrz MSDN.

+1

Twój link trafi do tego posta lol. Ale dzięki. –

+0

Dziękuję i przepraszam. Naprawiony. –

1

Nie ma żadnej różnicy w funkcjonalności; to tylko po to, aby uniknąć błędów i kompatybilności wstecznej z VB6. Osobiście nigdy go nie używam.

0

Jest tam, aby opisać, z którym next należy, z którym for. Nie jestem pewien, czy kontrole kompilatora, aby zobaczyć, że for i next mecz, ale niewykluczone, że mógłby zawieść jeśli NIE