الـإجراءات المتكررة

الـإجراء الـمتداخل هو الذي يستدعي نفسه. عموماً، هذه ليست الطريقة الأكثر فعالية لكتابة Visual Basic التعليمات البرمجية.

يستخدم الإجراء التالي التكرار لحساب عامل الوسيطة الأصلية الخاصة به.

Function factorial(ByVal n As Integer) As Integer
    If n <= 1 Then
        Return 1
    Else
        Return factorial(n - 1) * n
    End If
End Function

اعتبارات مع إجراءات التداخل

تحديد الشروط. يجب عليك تصميم إجراء متداخل لاختبار على الأقل شرط واحد الذي يمكن أن ينهي التداخل, و يجب عليك أيضا معالجة الحالة حيث لا تكون مثل هذه الحالة مكتفية في عدد معقول من استدعاءات التداخل. بدون شرط واحد على الأقل الذي يمكن أن يتحقق من دون فشل, الإجراء الخاص بك يشغل مخاطر عالية للتنفيذ في تكرار حلقي لا نهائي.

استخدام الذاكرة. للـتطبيق الخاص بك له كيمية محدودة من المساحة للمتغيرات المحلية. في كل مرة يقوم الإجراء باستدعاء نفسه, فإنه يستخدم أكثر من تلك المساحة للنسخ الإضافية من المتغيرات المحلية الخاصة به. إذا استمرت هذه العملية بشكل غير محدود, فإنها تتسبب في النهاية StackOverflowException خطأ.

الكفاءة. يمكنك تقريباً دوماً استبدال التكرار الحلقي بتداخل. ليس لدى التكرار الحلقي قدرة تمرير الوسيطات, تهيئة تخزين إضافي, و ثم إرجاع القيم. الأداء الخاص بك يمكن أن يكون أفضل بكثير بدون استدعاءات التداخل.

التداخل المتبادل. قد تلاحظ أداء ضعيف جداً, أو حتى تكرار حلقي لانهائي, في حالة استدعاء إجرائين بعضهما. يقدم تصميم مثل هذا نفس المشكلة كاجراء تكرار فردي, و لكن يمكن أن تكون صعبة لكشفها و تصحيحها.

استدعاء مع أقواس. عندما يقوم اجراء Function باستدعاء نفسه بشكل متكرر, يجب أن تتبع اسم الإجراء مع الأقواس، حتى وإن لم يكن هناك قائمة وسيطة. غير ذلك، يتم اتخاذ اسم دالة كأنها تمثل القيمة المرجعة للدالة.

الاختبار. إذا قمت بكتابة إجراء متداخل, يجب عليك اختبارها بعناية للتأكد دائماً أنها تفي بعض الشروط المحدودة. عليك التأكد أيضاً من عدم نفاد الذاكرة بسبب الحاجة إلى العديد من استداعاءات التداخل.

راجع أيضًا:

المهام

إجراءات استكشاف الأخطاء وإصلاحها

استكشاف أخطاء "الاستثناءات" و إصلاحها: النظام.StackOverflowException

المرجع

StackOverflowException

المبادئ

الـإجراءات في Visual Basic

إجراءات فرعية

إجراءات الدالة

إجراءات الخاصية

إجراءات عامل التشغيل

معلمات إجراء و وسيطات

زيادة تحميل الإجراء

بنيات التكرار الحلقي