Pregunta

Aquí hay un par de preguntas que se reunieron con respecto a la salida, seleccione ...

  1. ¿Hay alguna razón para usar la salida de selección en VB.NET?
  2. ¿La razón tiene nada que ver con el rendimiento?
  3. ¿Es la salida seleccione igual a break;?

Ejemplo 1

Select case Name
case "Mary"
'...
case "John"
'...
case else

end select

Ejemplo 2

Select case Name
case "Mary"
'...
exit select

case "John"
'...
exit select

case else

end select
¿Fue útil?

Solución

No es lo mismo que usar la palabra clave break con las declaraciones switch de idiomas como C. Con un switch, si se omite el control de salto caerá hasta el siguiente caso. Con un Select de Visual Basic, el control no se caiga a través; un break ya está implícita.

Sin embargo, se puede usar como una cláusula de guardia, para evitar la necesidad de código de nido de otro nivel en un bloque de if. Por ejemplo:

Select Case SomeEnumVar
    Case SomeEnum.SomeValue1
         If Not SomeCondition Then Exit Select
         'Do something
    Case SomeEnum.SomeValue2
         'Do something else
    Case Else
         'Default case
End Select

Eso es un poco mejor que el código equivalente:

Select Case SomeEnumVar
    Case SomeEnum.SomeValue1
         If SomeCondition Then
             'Do something
         End If
    Case SomeEnum.SomeValue2
         'Do something else
    Case Else
         'Default case
End Select

Cualquier diferencia de rendimiento entre estas dos muestras es casi seguro insignificante en comparación con otros factores.

Otro uso es si usted tiene una gran cantidad de casos, y uno de los casos está colocado de manera que un partido significa que desea detener la comprobación de todos los demás. Esto ya sucede, por lo que sólo podría tener una sentencia case vacío allí. Pero también puede ser que añadir una salida Seleccionar para dejar claro a los mantenedores que se esperan este caso no hay que hacer nada más.

Otros consejos

Bueno ... Es como usar un Goto ... Una vez que has encontrado el caso correcto no hay uso de "salir" el caso ya que en Visual Basic que se va fuera. En C # que necesita para salir de la caja (en este caso, con un descanso).

El punto es que se puede usar en el medio del alcance de un caso, algo como:

Case 1
   Do something
   Do something
   Evaluate
      exit select
   Else
      Do something

Es feo, pero se puede hacer eso ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top