كيفية القيام بما يلي: التحميل الزائد لإجراء الذي يأخذ عدد لا نهائي من المعلمات

إذا كان لدى إجراء ParamArray (Visual Basic) المعلمة, لا يمكنك تعريف إصداراً محمل بشكل زائد بأخذ صفيف أحادي الأبعاد لصفيف معلمة. للحصول على أكثر المعلومات، راجع " التحميل الزائد الضمني لمعلمة ParamArray" في اعتبارات في إجراءات التحميل الزائد.

لـلتحميل الزائد لإجراء يأخذ عدد متغير من المعلمات

  1. للتحقق من أن إجراء و منطق تعليمات برمجية المستدعية تستفيد من الإصدارات المحملة فوق طاقتها أكثر من ParamArray المعلمة. راجع "التحميل الزائد و ParamArrays" في اعتبارات في إجراءات التحميل الزائد.

  2. تحديد أي أرقام من القيم التي تم توفيرها يجب أن يقبلها الإجراء الموجود في الجزء المتغير من قائمة المعلمة. هذا قد يتضمن حالة عدم وجود القيمة وهو قد يتضمن حالة الصفيف أحادي البعد فردي.

  3. لكل رقم مقبولة من القيم التي تم توفيرها قم بكتابة Sub أو Function عبارة تعريف التي تعريف قائمة المعلمة المطابقة. عدم استخدام إما Optional أو ParamArray كلمة أساسية في هذا الإصدار محمّل فوق طاقته.

  4. في كل تعريف ضع قبل Sub أو Function الكلمة الأساسية مع الزوائد (Visual Basic) الكلمة الأساسية.

  5. مع اتباع كل تعريف قم بكتابة التعليمات البرمجية الإجراء التي يجب تنفيذها عندما توفر التعليمات البرمجية المتصلة قائمة وسيطة مقابلة لتعريف القيم.

  6. قم بانهاء كل إجراء مع End Sub أو End Function الكشف بالشكل المناسب.

مثال

يظهر المثال التالي إجراء معرف مع ParamArray (Visual Basic) معلمة ثم مجموعة مكافئة من الإجراءات المحملة بشكل زائد.

Sub p(ByVal d As Date, ByVal ParamArray c() As Char)
' The preceding definition is equivalent to the following overloads.
' Overloads Sub p(ByVal d As Date)
' Overloads Sub p(ByVal d As Date, ByVal c() As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char, ByVal c2 As Char)
' And so on, with an additional Char argument in each successive overload.

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

' The following overload is not valid because it takes an array for the parameter array.
' Overloads Sub p(ByVal x As Date, ByVal y() As Char)
' The following overload takes a single value for the parameter array and is valid.
Overloads Sub p(ByVal z As Date, ByVal w As Char)

تعليمات برمجية في الإصدارات المحملة بشكل زائد لا تحتاج لاختبار ما إذا كانت التعليمات البرمجية المستدعية وفرت قيمة أو أكثر لـ ParamArray معلمة, أو إذا كان الأمر كذلك، كم العدد. Visual Basic تمرر التحكم إلى النسخة المطابقة لقائمة الوسيطة المستدعية.

التحويل البرمجي للتعليمات البرمجية

لأن إجراء مع ParamArray المعلمة يكافئ مجموعة من الإصدارات محمّلة فوق طاقتها ، يتعذر زيادة التحميل لمثل هذا الإجراء مع قائمة معلمة موافقة إلى أي من هذه التحميلات الزائدة الضمنية. لمزيد من المعلومات، راجع اعتبارات في إجراءات التحميل الزائد.

أمان

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

راجع أيضًا:

المهام

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

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

كيفية القيام بما يلي: إستدعاء إجراء محمّل تحميلا زائدا‬ً

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

المبادئ

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

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

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

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

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

دقة التحميل الزائد