بسم الله الرحمن الرحيم
عند القيام بانشاء اجراء او دالة من الطبيعي ان نحدد الوسطاء التي
تدخل الى الاجراء او الدالة مثلا :
Sub msg1(ByVal str As String)
MsgBox("welcome " & str)
End Subاو
Function msg2(ByVal str As String) As String Return "welcome " & str End Function
يتضح ان الاجراء والدالة يستقبلان وسيط واحد من نوع نص
ولا يمكن ارسال اكثر من قيمة لهما الا اذا عرفنا ضمن الوسيط
العدد المطلوب من الوسطاء مثل :
Sub msg1(ByVal str As String, ByVal id As Integer)
MsgBox("welcome " & str & "your ID :" & id)
End Subاو
Function msg2(ByVal str As String, ByVal id As Integer) As String Return "welcome " & str & "your ID :" & id End Function
ولكن ماذا لو اردنا ارسال عدد غير محدود او اننا بحاجة الى اجراء او دالة
لا نعرف عدد الاجراءات التي يمكن ان تستقبلها
الحل هو استعمال مصفوفة الوسطاء :
Sub msg1(ByVal str As String, ByVal id As Integer, ByVal ParamArray a() As String)
Dim s As String = "welcome " & str & "your ID :" & id
For i As Integer = 0 To a.Length - 1
s = s & " note " & i & "(" & a(i) & ")"
Next
MsgBox(s)
End Subاو
Function msg2(ByVal str As String, ByVal id As Integer, ByVal ParamArray a() As String) As String
Dim s As String = "welcome " & str & "your ID :" & id
For i As Integer = 0 To a.Length - 1
s = s & " note " & i & "(" & a(i) & ")"
Next
Return s
End Functionالان تستطيع ان ترسل بقدر ما تشاء من الوسطاء الى الاجراء او الدالة
ولكن نذكر بأمرين :
1. يجب ان تكون مصفوفة الوسطاء أخر وسيط يعرف في الاجراء او الدالة
2. لا يمكن تعريف اكثر من مصفوفة وسطاء في نفس الاجراء او الدالة