Kiválaszt... Esetutasítás (Visual Basic)
A kifejezés értékétől függően több utasításcsoport egyikét futtatja.
Syntax
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
Részek
Időszak | Definíció |
---|---|
testexpression |
Szükséges. Kifejezés. Ki kell értékelnie az egyik elemi adattípust (Boolean , , Byte , Char , Date Double , Decimal , Integer , Long , Object , , SByte , Short , Single , ULong String UInteger és ).UShort |
expressionlist |
Utasításban Case kötelező megadni. A kifejezési záradékok listája, amelyek egyezésértékeket jelölnek a következőhöz testexpression : . Több kifejezési záradékot vessző választ el egymástól. Az egyes záradékok a következő űrlapok egyikét használhatják:- kifejezés1 To kifejezés2- [ Is ] összehasonlítóoperátor kifejezés- kifejezés To A kulcsszóval megadhatja a megfelelő értékek tartományának határaittestexpression . Az értéknek expression1 kisebbnek vagy egyenlőnek kell lennie az értékével expression2 .Használja a Is kulcsszót egy összehasonlító operátorral (= , <> , , < , <= , > vagy >= ) a találati értékek korlátozásának megadásához testexpression . Ha a Is kulcsszó nincs megadva, a rendszer automatikusan beszúrja az összehasonlítóoperátor előtt.A csak expression a megadott űrlapot az űrlap különleges eseteként kezeli a Is rendszer, ahol az összehasonlító függvény az egyenlőségjel (= ). Ez az űrlap a következőképpen lesz kiértékelve testexpression = expression : .A benne lévő expressionlist kifejezések bármilyen típusúak lehetnek, feltéve, hogy implicit módon átalakíthatók a típusra testexpression , és a megfelelő comparisonoperator a használt két típusra érvényes. |
statements |
Opcionális. Egy vagy több következő utasítás Case , amely akkor fut, ha testexpression megegyezik a következőben található bármelyik záradékkal expressionlist : . |
elsestatements |
Opcionális. A következő Case Else egy vagy több utasítás akkor fut, ha testexpression nem egyezik meg egyik expressionlist utasítás egyik záradékával sem Case . |
End Select |
Leállítja a ...Case szerkezet definíciójátSelect . |
Megjegyzések
Ha testexpression
egyezik egy záradékkal expressionlist
Case
, az utasítást Case
követő utasítások a következőre Case
vagy Case Else
End Select
utasításra futnak. A vezérlő ezután a következő End Select
utasításra kerül. Ha testexpression
egy záradék több expressionlist
záradékban Case
is megegyezik, csak az első egyeztetési futtatás utáni utasítások.
Az Case Else
utasítás a futtatás bevezetésére elsestatements
szolgál, ha a többi Case
utasításban nem található egyezés a záradék és expressionlist
a testexpression
záradék között. Bár nem kötelező, érdemes egy utasítást Case Else
megadni az Select Case
építkezéshez, hogy kezelje az előre nem látható testexpression
értékeket. Ha nincs Case
expressionlist
egyező testexpression
záradék, és nincs Case Else
utasítás, a vezérlőelem a következő End Select
utasításra kerül.
Minden Case
záradékban több kifejezés vagy tartomány is használható. Például a következő sor érvényes.
Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber
Feljegyzés
Az Is
és az Case
Case Else
utasításokban használt kulcsszó nem ugyanaz, mint az Is Operátor, amelyet objektumhivatkozások összehasonlítására használnak.
A karaktersztringekhez tartományokat és több kifejezést is megadhat. Az alábbi példában egyezik minden olyan sztringgel, Case
amely pontosan megegyezik az "alma" értékkel, betűrendben a "dió" és a "leves" között van érték, vagy pontosan ugyanazt az értéket tartalmazza, mint az aktuális érték.testItem
Case "apples", "nuts" To "soup", testItem
A beállítás befolyásolhatja a sztringek Option Compare
összehasonlítását. Alatta Option Compare Text
az "Apples" és az "apples" sztringek egyenlőnek tekinthetők, de alattuk Option Compare Binary
nem.
Feljegyzés
A Case
több záradékot tartalmazó utasítások rövidzárolásnak nevezett viselkedést mutathatnak. A Visual Basic balról jobbra értékeli ki a záradékokat, és ha egyezést testexpression
hoz létre, a többi záradék nem lesz kiértékelve. A rövidzárolás javíthatja a teljesítményt, de váratlan eredményeket eredményezhet, ha minden kifejezés expressionlist
kiértékelésére számít. A rövidzárolással kapcsolatos további információkért lásd a logikai kifejezéseket.
Ha egy vagy Case Else
több utasításblokkban lévő kódnak Case
nem kell több utasítást futtatnia a blokkban, az utasítással kiléphet a Exit Select
blokkból. Ez azonnal átviszi a vezérlőt a következő End Select
utasításba.
Select Case
konstrukciók beágyazhatók. Minden beágyazott Select Case
szerkezetnek egyező End Select
utasítással kell rendelkeznie, és teljes egészében annak a külső Select Case
építménynek egy Case
vagy Case Else
utasításblokkjába kell tartoznia, amelyben beágyazva van.
Példa
Az alábbi példa egy konstrukciót Select Case
használ a változó number
értékének megfelelő sor írásához. A második Case
utasítás az aktuális értéknek number
megfelelő értéket tartalmazza, így a "6 és 8 közötti, befogadó" szöveget tartalmazó utasítás fut.
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
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: