¿Por qué usar la salida seleccione?
-
20-09-2019 - |
Pregunta
Aquí hay un par de preguntas que se reunieron con respecto a la salida, seleccione ...
- ¿Hay alguna razón para usar la salida de selección en VB.NET?
- ¿La razón tiene nada que ver con el rendimiento?
- ¿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
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 ...