Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İfadenin değerine bağlı olarak birkaç deyim grubundan birini çalıştırır.
Sözdizimi
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
Parça
| Süre | Tanım |
|---|---|
testexpression |
Gerekli. İfade. Temel veri türlerinden birini (Boolean, , , Byte, Char, Date, , Double, DecimalIntegerLongObjectSByteShort, , Single, Stringve UIntegerULong) değerlendirmelidir. UShort |
expressionlist |
Bir Case deyimde gereklidir. için testexpressioneşleşme değerlerini temsil eden ifade yan tümcelerinin listesi. Birden çok ifade yan tümcesi virgülle ayrılır. Her yan tümce aşağıdaki formlardan birini alabilir:- ifade1 Toifade2- [ Is ] karşılaştırmaoperatorifadesi- ifade To için bir eşleşme değerleri aralığının sınırlarını belirtmek için testexpressionanahtar sözcüğünü kullanın. değerinin expression1 değerinden expression2küçük veya değerine eşit olması gerekir.için eşleşme değerleri üzerinde Is bir kısıtlama belirtmek için anahtar sözcüğünü karşılaştırma işleciyle (=, <><, , <=, >veya >=) testexpressionkullanın. Anahtar sözcük sağlanmazsaIs, karşılaştırmaoperatörden önce otomatik olarak eklenir.Yalnızca expression belirten form, karşılaştırma çalıştırıcısının Is=formun özel bir durumu olarak değerlendirilir. Bu form olarak testexpression = expressiondeğerlendirilir.içindeki expressionlist ifadeler, türüne örtük olarak dönüştürülebilir testexpression olması ve uygun comparisonoperator olanın kullanıldığı iki tür için geçerli olması koşuluyla herhangi bir veri türünde olabilir. |
statements |
isteğe bağlı. içindeki herhangi bir yan tümceyle eşleşiyorsa Case aşağıdaki bir veya daha fazla deyim testexpression çalıştırılırexpressionlist. |
elsestatements |
isteğe bağlı. Aşağıdaki bir veya daha fazla deyimCase Else, deyiminin herhangi bir yan tümcesi testexpressionexpressionlist ile eşleşmiyorsa çalışırCase. |
End Select |
...Select inşaatının Casetanımını sonlandırır. |
Açıklamalar
Herhangi bir testexpressionCase yan tümceyle eşleşirseexpressionlist, bu deyimi izleyen Case deyimler sonraki Case, Case Elseveya End Select deyimine kadar çalışır. Denetim daha sonra aşağıdaki End Selectdeyimine geçer. Birden testexpression fazla yan tümcedeki bir expressionlist yan tümceyle eşleşiyorsaCase, yalnızca ilk eşleşmeyi izleyen deyimler çalıştırılır.
deyimiCase Else, diğer elsestatements deyimlerden herhangi birinde ve testexpression yan tümcesi arasında expressionlist eşleşme bulunmazsa komutunu çalıştırmak için kullanılırCase. Gerekli olmasa da, öngörülemeyen Case Else değerleri işlemek için yapınızda Select Case bir deyim olması iyi bir testexpression fikirdir. Yan Caseexpressionlist tümce eşleşmezse testexpression ve deyimi yoksa Case Else , denetim aşağıdaki End Selectdeyimine geçer.
Her Case yan tümcede birden çok ifade veya aralık kullanabilirsiniz. Örneğin, aşağıdaki satır geçerlidir.
Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber
Not
Is ve Case deyimlerinde Case Else kullanılan anahtar sözcük, nesne başvurusu karşılaştırması için kullanılan Is İşleci ile aynı değildir.
Karakter dizeleri için aralıklar ve birden çok ifade belirtebilirsiniz. Aşağıdaki örnekte, Case "elma" ile tam olarak eşit olan, alfabetik sırada "fındık" ile "çorba" arasında bir değere sahip olan veya geçerli değeriyle tam olarak aynı değeri testItemiçeren herhangi bir dizeyle eşleşir.
Case "apples", "nuts" To "soup", testItem
ayarı Option Compare dize karşılaştırmalarını etkileyebilir. altında Option Compare Text, "Apples" ve "apples" dizeleri eşit olarak karşılaştırır, ancak altında Option Compare Binarykarşılaştırmaz.
Not
Birden çok yan tümcesine sahip bir Case deyim, kısa devre olarak bilinen davranışlar sergileyebilir. Visual Basic yan tümceleri soldan sağa değerlendirir ve biri ile testexpressioneşleşme oluşturursa, kalan yan tümceler değerlendirilmez. Kısa devre performansı artırabilir, ancak içindeki her ifadenin expressionlist değerlendirilmesini bekliyorsanız beklenmeyen sonuçlara neden olabilir. Kısa devre hakkında daha fazla bilgi için bkz . Boole İfadeleri.
Bir Case veya Case Else deyimi bloğundaki kodun bloktaki deyimlerden herhangi birini çalıştırması gerekmiyorsa, deyimini Exit Select kullanarak bloğundan çıkabilirsiniz. Bu, denetimi hemen aşağıdaki End Selectdeyimine aktarır.
Select Case yapılar iç içe yerleştirilebilir. İç içe yerleştirilmiş Select Case her yapıda eşleşen End Select bir deyim bulunmalıdır ve tamamen iç içe yerleştirildiği dış Case yapıdaki tek Case Else veya Select Case deyim bloğu içinde yer almalıdır.
Örnek
Aşağıdaki örnek, değişkeninin Select Casedeğerine karşılık gelen bir satır yazmak için bir number yapı kullanır. İkinci Case deyim geçerli değeriyle eşleşen değeri numberiçerir, bu nedenle "6 ile 8 arasında, dahil" yazan deyimi çalışır.
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