عبارة Visual Basic) Select...Case)
يتم تشغيل عدة مجموعات من العبارات استناداً إلى قيمة التعبير.
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
الأجزاء
testexpression
مطلوبة. تعبير. يجب أن تقيّم إلى أحد أنواع البيانات الأولية (Boolean, Byte, Char, Date, Double, Decimal, Integer, Long, Object, SByte, Short, Single, String, UInteger, ULong، و UShort).expressionlist
مطلوبة في العبارة Case. قائمة من عبارات التعبير يمثل تطابق قيم testexpression. جمل التعبير متعددة تكون مفصولة بفواصل. تستغرق كل جملة أحد النماذج التالية:تعبير1 To تعبير2
[ Is ] عامل المقارنةcomparisonoperator تعبير
تعبير
استخدم الكلمة الأساسية To لتحديد حدود نطاق القيم المطابقة testexpression. القيمة expression1 يجب أن يكون أقل من أو يساوي القيمة expression2.
استخدم الكلمة الأساسية Is مع (المقارنة=, <>, <, <=, >، أو >=) إلى تحديد وجود قيود على قيم مطابقة testexpression. إذا كان الكلمة الأساسية Is لم يتم توفير , يتم تلقائياً إدراج قبل comparisonoperator.
تعيين النموذجexpression يتم التعامل مع حالة خاصة من Is نموذج مكان comparisonoperator هو علامة المساواة (=). يتم تقييم هذا نموذج باسم testexpression = expression.
التعبيرات في expressionlist يمكن أن يكون من أي نوع بيانات بشرط أن تكون convertible ضمنيًا إلى نوع testexpression و المناسب comparisonoperator صالح الاثنين أنواع استخدامه مع.
statements
اختياري. واحد أو أكثر من العبارات التالية Case التي تشغيل إذا testexpression يطابق أي لعبارة WHERE في expressionlist.elsestatements
اختياري. واحد أو أكثر من العبارات التالية Case Else التي تشغيل إذا testexpression لا يتطابق مع أي عبارة في expressionlist أي من عبارات Case .End Select
تنهي تعريف التكرار الحلقي Select...Case.
ملاحظات
إذا testexpression يطابق أي Case expressionlist جملة العبارات التي تلي Case العبارة لأعلى إلى التالي Case , Case Else، أو End Select ثم تتحكم مسارات للعبارة التالية End Select. testexpression يطابق expressionlist جملة في أكثر من واحد Case جملة تشغيل العبارات التالية التطابق أول فقط.
العبارة Case Else المستخدمة لتقديم elsestatements لتشغيل إذا تم العثور على أي تطابق بين testexpression ومن expressionlist جملة في أي من الآخر جمل Case. على الرغم من أنه ليس مطلوباً إنها لفكرة بضاعة أن Case Else عبارة في الخاص بك Select Case بناء لمعالجة unforeseen testexpression قيم. If لا Case expressionlistيطابق جملة testexpression وليس هناك أية يمرر كشف عنصر تحكم إلى العبارة النت Case Else أو End Select.
يمكنك استخدام عدة تعبيرات أو نطاقات في كل جملة Case. على سبيل المثال، بناء الجملة التالي هو بناء صالح:
Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber
ملاحظة
Is كلمة أساسية المستخدمة في Case و Case Else عبارات ليس هو نفسه عامل التشغيل Is في (Visual Basic)، الذي يُستخدم للمقارنة مرجع كائن.
يمكنك تحديد نطاقات وتعبيرات عدة سلاسل الأحرف. في المثال التالي Case تطابق أية سلسلة يساوي بالضبط إلى "تفاح" على قيمة بين "بجوز الهند" و "soup" بترتيب أبجدي أو يحتوي على نفس قيمة تماماً القيمة الحالية testItem.
Case "apples", "nuts" To "soup", testItem
إعداد Option Compare يمكن أن يؤثر على مقارنات السلسلة. ضمنOption Compare Text، يقارن سلاسل "تفاح" و "تفاح" كـ "يساوي" ، ولكن تحت Option Compare Binary، هل لا.
ملاحظة
A Case كشف مع جمل متعددة يمكن أن تحدث نفس المشكلة تُعرف باسم قصير-circuiting. تقييم العبارات من اليسار إلى اليمين Visual Basic وأن حالة يُنشئ مطابقة مع testexpression، لا يتم تقييم العبارات المتبقية. قصير-circuiting يمكن تحسين أداء إلا أنه يمكن أن يعطي نتائج غير متوقعة إذا كنت تتوقع احتواء كل تعبير في expressionlist إلى يتم تقييم. للحصول تشغيل أكثر المعلومات تشغيل قصير-circuiting, راجع تعبيرات Boolean.
إذا كان تعليمات برمجية داخل Case أو Case Else لا يلزم تشغيل المزيد من العبارات في الكتلة حظر عبارة, يمكن إنهاء الكتلة باستخدام Exit Select العبارة. ينقل التحكم مباشرةً إلى العبارة التي تلي العبارة End Select.
Select Case يمكن أن تتداخل constructions. كل متداخلةSelect Case يجب أن يكون بناء مطابق End Select كشف و يجب أن يتم احتواء بالكامل داخل واحدة Case أو Case Else كشف حظر خارجية Select Case بناء فإنه يتم تداخل خلالها.
مثال
يستخدم المثال التالي Select Case بناء إلى كتابة خط المقابل إلى القيمة المتغير number. الثانيCase يحتوي كشف على القيمة التي تتطابق مع القيمة الحالية number، لذا العبارة التي يكتب "بين 6 و 8 ضمناً" يتم تشغيلها.
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