2012-08-06 15 views
5

Normalmente, programo .NET en C#, pero actualmente estoy actualizando un proyecto escrito en VB.NET y he notado una curiosa sintaxis en los bucles For Each.Para cada x ... Siguiente vs. Para cada x ... Siguiente x

¿Hay alguna diferencia entre

For Each x in collection.Items 
    ... 
Next 

y

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

?

He visto ambos en el código aquí y era curioso por qué alguien usaría la segunda variación.

+2

yo sepa, es sólo para ayudar a mantener muy grande (anidada) bucles de fácil lectura ... – Mr47

+1

no puedo encuentra cualquier referencia a él, pero creo que en VB6 'Next' fue más rápido que' Next x' - Dudo que todavía sea cierto en VB.NET. –

Respuesta

5

Esto se especifica como tal en la referencia de MSDN:

Usted opcionalmente puede especificar un elemento en la siguiente declaración. Este mejora la legibilidad de su programa, especialmente si tiene anidado para cada bucle. Debe especificar la misma variable que el que aparece en la declaración For Each correspondiente.

original se puede encontrar aquí - quinto párrafo en la sección Observaciones:

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

3

La segunda versión puede ser más clara para el lector, especialmente cuando hay muchos bucles anidados. No hay otra razón para eso. Vea MSDN para más.

+1

Tu enlace va a este post lol. Pero gracias. –

+0

Gracias y disculpas. Fijo. –

1

No hay diferencia en la funcionalidad; es solo para ayudar a evitar errores y compatibilidad hacia atrás con VB6. Personalmente, nunca lo uso.

0

Está allí anotar a qué next pertenece con el cual for. No estoy seguro de si el compilador comprueba al ver que el for y el partido next, pero es concebible que podría fallar si no lo hacen

Cuestiones relacionadas