لماذا يجب علي استخدام تحديد الخروج؟
-
20-09-2019 - |
سؤال
فيما يلي بعض الأسئلة التي جمعتها بخصوص تحديد الخروج ...
- هل هناك أي سبب لاستخدام تحديد الخروج في VB.NET؟
- هل السبب له علاقة بالأداء؟
- هل تحديد الخروج يساوي
break;
?
مثال 1
Select case Name
case "Mary"
'...
case "John"
'...
case else
end select
مثال 2
Select case Name
case "Mary"
'...
exit select
case "John"
'...
exit select
case else
end select
المحلول
إنه ليس مثل استخدام break
الكلمة الرئيسية مع switch
بيانات من لغات تشبه C.مع switch
, ، إذا قمت بحذف التحكم في الكسر فسوف ينتقل إلى الحالة التالية.مع فيجوال بيسك Select
, ، لا تسقط السيطرة؛أ break
ضمني بالفعل.
ومع ذلك، يمكنك استخدامه بمثابة شرط حماية، لتجنب الحاجة إلى تداخل التعليمات البرمجية على مستوى آخر في ملف if
حاجز.على سبيل المثال:
Select Case SomeEnumVar
Case SomeEnum.SomeValue1
If Not SomeCondition Then Exit Select
'Do something
Case SomeEnum.SomeValue2
'Do something else
Case Else
'Default case
End Select
هذا أجمل قليلاً من هذا الكود المكافئ:
Select Case SomeEnumVar
Case SomeEnum.SomeValue1
If SomeCondition Then
'Do something
End If
Case SomeEnum.SomeValue2
'Do something else
Case Else
'Default case
End Select
من المؤكد تقريبًا أن أي اختلاف في الأداء بين هاتين العينتين غير مهم مقارنة بالعوامل الأخرى.
أحد الاستخدامات الأخرى هو إذا كان لديك الكثير من الحالات، وتم وضع إحدى الحالات بحيث تعني المطابقة أنك تريد التوقف عن التحقق من جميع الحالات الأخرى.يحدث هذا بالفعل، وبالتالي قد يكون لديك بيان حالة فارغ هناك.ولكن يمكنك أيضًا إضافة تحديد خروج لتوضيح للمشرفين أنك تتوقع ألا تفعل هذه الحالة أي شيء آخر.
نصائح أخرى
حسنًا...إنه مثل استخدام goto ...بمجرد العثور على الحالة الصحيحة، لن يكون هناك أي فائدة في "الخروج" من الحالة لأنه في Visual Basic سيتم الخروج.في C#، تحتاج إلى الخروج من الحالة (في هذه الحالة، مع فترة استراحة).
النقطة المهمة هي أنه يمكنك استخدامه في منتصف نطاق الحالة، مثل:
Case 1
Do something
Do something
Evaluate
exit select
Else
Do something
إنه أمر قبيح، لكن يمكنك فعل ذلك...