المعلمات الإختيارية

يمكنك تحديد أنّ معلمة الإجراء اختيارية و من لا وسيطة يجب أن يتم توفيرها له عندما يتم استدعاء الإجراء. معلمات اختيارية يشار إليها بالكلمة الأساسية Optional في تعريف الإجراء. تطبّق القواعد التالية:

  • يجب أن يحدد كل معلمة اختيارية في تعريف إجراء القيمة افتراضية.

  • القيمة افتراضية لمعلمة اختيارية يجب أن يكون تعبير ثابت.

  • يجب أن يكون كل معلمة يتبع معلمة اختيارية في تعريف الإجراء اختيارية.

و يوضح المثال التالي تعريف الإجراء مع معلمة اختيارية.

Sub sub name(ByVal parameter 1 As data type 1, Optional ByVal parameter 2 As data type 2 = default value)

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

عندما تستدعي إجراء مع معلمة اختيارية, يمكنك اختيار ما إذا كانت توفر الوسيطة المطابقة. إذا لم تقم بذلك, فإن الإجراء يستخدم القيمة الافتراضية المعرّفة للمعلمة .

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

Call sub name(argument 1, , , argument 4)

تحديد ما إذا كان وسيطة اختيارية موجود

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

Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
    If office = "QJZ" Then
        Debug.WriteLine("office not supplied -- using Headquarters")
        office = "Headquarters"
    End If
    ' Insert code to notify headquarters or specified office.
End Sub

إذا كانت المعلمة الاختيارية من نوع المرجع مثل String، يمكنك استخدام Nothing كقيمة افتراضية, ومعطى أن هذه ليست قيمة متوقعة للوسيطة.

معلمات اختيارية و الزائد

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

راجع أيضًا:

المهام

كيفية القيام بما يلي: تعريف المعلمات الاختيارية للإجراء

كيفية القيام بما يلي: استدعاء إجراء الذي يأخذ معلمات اختيارية

كيفية القيام بما يلي: تحديد ما إذا كان قد تم توفير معلمة اختيارية

المرجع

(Visual Basic) اختيارية

ParamArray (Visual Basic)

المبادئ

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

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

تمرير الوسائط بواسطة القيمة و بواسطة المرجع

تمرير الوسائط حسب الموضع و حسب الاسم

صفائف المعلمة.

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