صفائف المعلمة.
عادةً، لا يمكنك استدعاء إجراء مع وسيطات أكثر من تلك المحددة في تعريف الإجراء. إذا كنت بحاجة الى عدد غير محدد من الوسيطات، يمكنك تعريف صفيف المعلمة ، والذي يسمح لإجراء بقبول صفيف من القيم لمعلمة. لست بحاجة إلى معرفة عدد العناصر في صفيف المعلمة عند تعريف الإجراء. يتم تحديد حجم الصفيف بشكل فردي بواسطة كل استداء للإجراء.
التصريح بـ ParamArray
استخدم الكلمة الأساسية ParamArray (Visual Basic) للإشارة إلى صفيف معلمة في قائمة المعلمة. تطبّق القواعد التالية:
يمكن لإجراء تعريف صفيف معلمة واحد فقط, و يجب أن يكون أخر معلمة في تعريف الإجراء.
يجب تمرير صفيف المعلمة حسب القيمة. يكون تدريب برمجي عملي جيد لتضمين بوضوح الكلمة الأساسية Visual Basic) ByVal) في تعريف الإجراء.
صفيف المعلمة اختياري تلقائياً. الـقيمته الافتراضية له عبارة عن صفيف فارغ أحادي الأبعاد من نوع عنصر لصفيف المعلمة.
كل المعلمات التي تسبق صفيف المعلمة يجب أن يكون مطلوب. يجب أن يكون صفيف المعلمات هو المعلمة الاختيارية فقط.
لمزيد من المعلومات، راجع كيفية القيام بما يلي: تعريف إجراء مع عدد محدد من المعلمات.
استدعاء ParamArray
عند استدعاء إجراء الذي يحدد صفيف معلمة, يمكنك توفير الوسيطة في أي من الطرق التالية:
لا يوجد شئ — أي، يمكنك حذف وسيطة ParamArray (Visual Basic). في هذه الحالة، يتم تمرير صفيف فارغ للإجراء. يمكنك أيضاً تمرير الكلمة الأساسية لا شيء (Visual Basic) مع نفس التأثير.
قائمة عدد عشوائي من الوسيطات, المفصولة بفاصلات. نوع البيانات لكل وسيطة يجب أن يكون ضمنيا قابل للتحويل إلى نوع العنصر ParamArray.
صفيف مع نفس نوع العنصر مثل نوع عنصر لصفيف المعلمة.
في كل الحالات, تعامل التعليمات البرمجية ضمن الإجراء صفيف المعلمة كأنه صفيف أحادي الأبعاد مع عناصر من نفس نوع بيانات كـنوع البيانات ParamArray.
لمزيد من المعلومات، راجع كيفية القيام بما يلي: استدعاء الإجراء الذي يأخذ عدد لا نهائي من المعلمات.
ملاحظة الأمان |
---|
عند التعامل مع صفيف والذي يمكن أن يكون بشكل غير محدود كبيرا، هناك خطورة من زيادة التشغيل بعض السعة الداخلية في التطبيق الخاص بك. في حالة قبولك صفيف معلمة, يجب اختبار لحجم الصفيف الذي تم تمريره بواسطة تعليمات برمجية المستدعية له. اتخذ الخطوات المناسبة إذا كان كبيراً جداً بالنسبة للتطبيق الخاص بك. لمزيد من المعلومات، راجع الصفائف في Visual Basic. |
المثال
الوصف
يحدد المثال التالي و يستدعي دالة calcSum. معدّل الـ ParamArray للمعلمات args يمكّن الدالة من قبول عدد متغير من الوسائط..
الرمز
Module Module1
Sub Main()
' In the following function call, calcSum's local variables
' are assigned the following values: args(0) = 4, args(1) = 3,
' and so on. The displayed sum is 10.
Dim returnedValue As Double = calcSum(4, 3, 2, 1)
Console.WriteLine("Sum: " & returnedValue)
' Parameter args accepts zero or more arguments. The sum
' displayed by the following statements is 0.
returnedValue = calcSum()
Console.WriteLine("Sum: " & returnedValue)
End Sub
Public Function calcSum(ByVal ParamArray args() As Double) As Double
calcSum = 0
If args.Length <= 0 Then Exit Function
For i As Integer = 0 To UBound(args, 1)
calcSum += args(i)
Next i
End Function
End Module
راجع أيضًا:
المرجع
المبادئ
تمرير الوسائط بواسطة القيمة و بواسطة المرجع