Pourquoi devrais-je utiliser sélectionner la sortie?
-
20-09-2019 - |
Question
Voici quelques questions que je réunis au sujet de la sortie sélectionner ...
- Y at-il raison d'utiliser la sortie select dans VB.NET?
- Est-ce que la raison a quelque chose à voir avec la performance?
- La sortie égale à sélectionner
break;
?
Exemple 1
Select case Name
case "Mary"
'...
case "John"
'...
case else
end select
Exemple 2
Select case Name
case "Mary"
'...
exit select
case "John"
'...
exit select
case else
end select
La solution
Il est pas la même chose que l'utilisation du mot-clé break
avec les déclarations de switch
de langages de type C. Avec un switch
si vous omettez le contrôle de rupture, il tombera jusqu'à la prochaine affaire. Avec un Select
Visual Basic, le contrôle ne tombe pas par; un break
est déjà implicite.
Cependant, vous pouvez l'utiliser comme une clause de garde, pour éviter d'avoir au code nid un autre niveau dans un bloc if
. Par exemple:
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
C'est un peu mieux que ce code équivalent:
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
Toute différence de performance entre ces deux échantillons est presque certainement insignifiant par rapport à d'autres facteurs.
Une autre utilisation est si vous avez beaucoup de cas, et l'un des cas est placé de manière qu'un match signifie que vous voulez arrêter la vérification de tous les autres. Cela se produit déjà, et ainsi vous pourriez avoir une déclaration il y a cas vide. Mais vous pouvez également ajouter une sortie Sélectionnez cette option pour préciser à mainteneurs que vous attendez ce cas, de ne rien faire d'autre.
Autres conseils
Eh bien ... Il est comme utiliser un goto ... Une fois que vous avez trouvé le bon cas, il ne sert à rien « sortir » le cas puisque dans Visual Basic, il sera de sortir. En C #, vous devez quitter le cas (dans ce cas, avec une pause).
Le point est que vous pouvez l'utiliser au milieu de la portée d'une affaire, quelque chose comme:
Case 1
Do something
Do something
Evaluate
exit select
Else
Do something
Il est laid, mais vous pouvez le faire ...