İfadenin değerine bağlı olarak birkaç deyim grubundan birini çalıştırır.
Sözdizimi
VB
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ CaseElse
[ elsestatements ] ]
EndSelect
Parça
Süre
Tanım
testexpression
Gerekli. İfade. Temel veri türlerinden birini (Boolean, , , Char, Date, Double, , Decimal, IntegerShortSingleSByteObjectLong, , String, UIntegerve UShortULong) değerlendirmelidir. Byte
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:
- ifade1Toifade2 - [ 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 eşittir işareti (=) olduğu 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 testexpression aşağıdaki bir veya daha fazla deyim Case ç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 expressionlistCase ile eşleşmiyorsa çalışırtestexpression.
End Select
...Case inşaatının Selecttanımını sonlandırır.
Açıklamalar
Herhangi bir Caseexpressionlist yan tümceyle eşleşirsetestexpression, 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 Case fazla yan tümcedeki bir expressionlist yan tümceyle eşleşiyorsatestexpression, yalnızca ilk eşleşmeyi izleyen deyimler çalıştırılır.
deyimiCase Else, diğer Case deyimlerden herhangi birinde ve expressionlist yan tümcesi arasında testexpression eşleşme bulunmazsa komutunu çalıştırmak için kullanılırelsestatements. Gerekli olmasa da, öngörülemeyen testexpression değerleri işlemek için yapınızda Select Case bir deyim olması iyi bir Case Else 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 Else deyimlerinde Case 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ış Select Case yapıdaki tek Case veya Case Else deyim bloğu içinde yer almalıdır.
Örnek
Aşağıdaki örnek, değişkeninin numberdeğerine karşılık gelen bir satır yazmak için bir Select Case 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.
VB
Dim number AsInteger = 8SelectCase number
Case1To5
Debug.WriteLine("Between 1 and 5, inclusive")
' The following is the only Case clause that evaluates to True.Case6, 7, 8
Debug.WriteLine("Between 6 and 8, inclusive")
Case9To10
Debug.WriteLine("Equal to 9 or 10")
CaseElse
Debug.WriteLine("Not between 1 and 10, inclusive")
EndSelect
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.