Question

Voici quelques questions que je réunis au sujet de la sortie sélectionner ...

  1. Y at-il raison d'utiliser la sortie select dans VB.NET?
  2. Est-ce que la raison a quelque chose à voir avec la performance?
  3. 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
Était-ce utile?

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 ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top