Delen via


Selecteer... Case-instructie (Visual Basic)

Voert een van de verschillende groepen instructies uit, afhankelijk van de waarde van een expressie.

Syntaxis

Select [ Case ] testexpression  
    [ Case expressionlist  
        [ statements ] ]  
    [ Case Else  
        [ elsestatements ] ]  
End Select  

generator

Term Definitie
testexpression Vereist. Expressie. Moet een van de elementaire gegevenstypen evalueren (Boolean, Byte, , Char, Date, Double, IntegerObjectSingleSByteLongDecimalStringUIntegerShort, en ).UShortULong
expressionlist Vereist in een Case instructie. Lijst met expressieclausules die overeenkomende waarden voor testexpression. Meerdere expressiecomponenten worden gescheiden door komma's. Elke component kan een van de volgende vormen aannemen:

- expressie1Toexpressie2
- [ Is ] vergelijkingsoperatorexpressie
- Expressie

Gebruik het To trefwoord om de grenzen van een bereik met overeenkomende waarden voor testexpressionop te geven. De waarde van expression1 moet kleiner dan of gelijk zijn aan de waarde van expression2.

Gebruik het Is trefwoord met een vergelijkingsoperator (=, <>, <, <=of >>=) om een beperking op te geven voor de overeenkomstwaarden voor testexpression. Als het Is trefwoord niet wordt opgegeven, wordt het automatisch ingevoegd voor vergelijkingsoperator.

Het formulier dat alleen expression opgeeft, wordt behandeld als een speciaal geval van het Is formulier waarbij vergelijkingsoperator het gelijkteken (=) is. Dit formulier wordt geëvalueerd als testexpression = expression.

De expressies in expressionlist kunnen van elk gegevenstype zijn, mits ze impliciet worden omgezet in het type testexpression en de juiste comparisonoperator geldig is voor de twee typen waarmee het wordt gebruikt.
statements Optioneel. Een of meer instructies die worden Case uitgevoerd als testexpression deze overeenkomen met een component in expressionlist.
elsestatements Optioneel. Een of meer instructies die volgen Case Else die worden uitgevoerd als testexpression deze niet overeenkomen met een component in een expressionlist van de Case instructies.
End Select Hiermee wordt de definitie van de Select...Case constructie beëindigd.

Opmerkingen

Als testexpression er een Caseexpressionlist component overeenkomt, worden de instructies die volgen op die Case instructie uitgevoerd tot de volgende Case, Case Elseof End Select instructie. Control geeft vervolgens de volgende End Selectinstructie door. Als testexpression deze overeenkomt met een expressionlist component in meer dan één Case component, worden alleen de instructies na de eerste overeenkomstuitvoering uitgevoerd.

De Case Else instructie wordt gebruikt om de elsestatements uitvoering te introduceren als er geen overeenkomst wordt gevonden tussen de testexpression en een expressionlist component in een van de andere Case instructies. Hoewel dit niet vereist is, is het een goed idee om een Case Else verklaring in uw Select Case constructie te hebben om onvoorziene testexpression waarden af te handelen. Als er geen Caseexpressionlist component overeenkomt testexpression en er geen Case Else instructie is, wordt het besturingselement doorgegeven aan de volgende End Selectinstructie.

U kunt in elke Case component meerdere expressies of bereiken gebruiken. De volgende regel is bijvoorbeeld geldig.

Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber

Notitie

Het Is trefwoord dat in de Case en Case Else instructies wordt gebruikt, is niet hetzelfde als de is-operator, die wordt gebruikt voor objectverwijzing.

U kunt bereiken en meerdere expressies opgeven voor tekenreeksen. In het volgende voorbeeld Case komt elke tekenreeks overeen die exact gelijk is aan "appels", heeft een waarde tussen "noten" en "soep" in alfabetische volgorde, of bevat exact dezelfde waarde als de huidige waarde van testItem.

Case "apples", "nuts" To "soup", testItem

De instelling kan Option Compare van invloed zijn op tekenreeksvergelijkingen. Onder Option Compare Text, de tekenreeksen "Apples" en "appels" vergelijken als gelijk, maar onder Option Compare Binary, ze niet.

Notitie

Een Case instructie met meerdere componenten kan gedrag vertonen dat bekend staat als kortsluiting. Visual Basic evalueert de componenten van links naar rechts en als er een overeenkomst met testexpressionwordt geproduceerd, worden de resterende componenten niet geëvalueerd. Kortsluiting kan de prestaties verbeteren, maar kan onverwachte resultaten opleveren als u verwacht dat elke expressie expressionlist wordt geëvalueerd. Zie Boole-expressies voor meer informatie over kortsluiting.

Als de code in een Case of Case Else instructieblok niet meer van de instructies in het blok hoeft uit te voeren, kan het blok worden afgesloten met behulp van de Exit Select instructie. Hiermee wordt het besturingselement onmiddellijk overgedragen naar de volgende End Selectinstructie.

Select Case constructies kunnen worden genest. Elke geneste constructie moet een overeenkomende End SelectSelect Case instructie hebben en moet volledig zijn opgenomen in één Case of Case Else instructieblok van de buitenste Select Case constructie waarin deze is genest.

Opmerking

In het volgende voorbeeld wordt een Select Case constructie gebruikt om een lijn te schrijven die overeenkomt met de waarde van de variabele number. De tweede Case instructie bevat de waarde die overeenkomt met de huidige waarde van number, dus de instructie die 'Tussen 6 en 8, inclusief' schrijft, wordt uitgevoerd.

Dim number As Integer = 8
Select Case number
    Case 1 To 5
        Debug.WriteLine("Between 1 and 5, inclusive")
        ' The following is the only Case clause that evaluates to True.
    Case 6, 7, 8
        Debug.WriteLine("Between 6 and 8, inclusive")
    Case 9 To 10
        Debug.WriteLine("Equal to 9 or 10")
    Case Else
        Debug.WriteLine("Not between 1 and 10, inclusive")
End Select

Zie ook