يا هلا :
- أولاًَ : يجب أن تراعي أن الــ(ParamArray) يجب أن يكون في آخر البارامترات لأي إجراء.
- ثانياً : يجب أن يكون عندك إختلاف بنوع البيانات بين البارام الأول و الـ (ParamArray) إختلافاً جذرياً :
يعني مش تحط واحد int والثاني long لأن في حال الارقام الصغيرة لن يميز المترجم بينهما ..
بالتالي لن تحصل على نتيجة صحيحة وإن حصلت : فـ بـالصدفة لا أكثر.
- ثالثاً : لا يمكن الجمع بينهما فعلياً، ولكن فيك تكتب الاجراء الأساسي مرتين أو ثلاث مرات (مع اختلاف البارامترات).
وعندما تكتب البارام الاختياري مع البارام المصفوفي ، لا تكتبه كـ إختياري بـ كـ إجباري.
فتكتب الاجراء : في كل مرة بـ بارامتر مختلف فيقوم المعالج بالتفريق بينهم من حيث نوع البيانات المدخلة.
- مثال عن إجراء فيك تستخدمه بأكثر من حالة :
لاحظ : أن للاجراء في الثلاث حالات نفس الاسم ولكن اختلفت نوعية وكمية البارامترات لكل واحد منها.
- وتستطيع مناداته بالكود التالي كمثال :
يعني نحن لما كتبنا البارام الاختياري مع البارام المصفوفي : ما كتبناه كـ أختياري بل كـ إجباري..
ولكن تنوع الاجراءات - جعله يظهر كأحد الاختيارات (كـ إجراء كامل من مجموعة إختيارات وليس مدمج ووحيد)..
اختلفت المدخلات واختلفت المخرجات ..
بحسب ما يتم إدخاله سيعطيك نتيجة تناسبه وغير متداخلة مع غيرها ..
- أولاًَ : يجب أن تراعي أن الــ(ParamArray) يجب أن يكون في آخر البارامترات لأي إجراء.
- ثانياً : يجب أن يكون عندك إختلاف بنوع البيانات بين البارام الأول و الـ (ParamArray) إختلافاً جذرياً :
يعني مش تحط واحد int والثاني long لأن في حال الارقام الصغيرة لن يميز المترجم بينهما ..
بالتالي لن تحصل على نتيجة صحيحة وإن حصلت : فـ بـالصدفة لا أكثر.
- ثالثاً : لا يمكن الجمع بينهما فعلياً، ولكن فيك تكتب الاجراء الأساسي مرتين أو ثلاث مرات (مع اختلاف البارامترات).
وعندما تكتب البارام الاختياري مع البارام المصفوفي ، لا تكتبه كـ إختياري بـ كـ إجباري.
فتكتب الاجراء : في كل مرة بـ بارامتر مختلف فيقوم المعالج بالتفريق بينهم من حيث نوع البيانات المدخلة.
- مثال عن إجراء فيك تستخدمه بأكثر من حالة :
كود :
Sub TA(ByVal FldCont As Boolean, ByVal ParamArray Cont() As Integer)
Dim S As Long = 0
For Each X In Cont
S += X
Next
MsgBox(FldCont.ToString & " - " & S.ToString)
End Sub
Sub TA(ByVal ParamArray Cont() As Integer)
Dim S As Long = 0
For Each X In Cont
S += X
Next
MsgBox(S.ToString)
End Sub
Sub TA(ByVal FldCont As Boolean)
MsgBox(FldCont.ToString)
End Subلاحظ : أن للاجراء في الثلاث حالات نفس الاسم ولكن اختلفت نوعية وكمية البارامترات لكل واحد منها.
- وتستطيع مناداته بالكود التالي كمثال :
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TA(1, 2, 3)
TA(False, 1, 2, 3, 4)
TA(True)
End Subيعني نحن لما كتبنا البارام الاختياري مع البارام المصفوفي : ما كتبناه كـ أختياري بل كـ إجباري..
ولكن تنوع الاجراءات - جعله يظهر كأحد الاختيارات (كـ إجراء كامل من مجموعة إختيارات وليس مدمج ووحيد)..
اختلفت المدخلات واختلفت المخرجات ..
بحسب ما يتم إدخاله سيعطيك نتيجة تناسبه وغير متداخلة مع غيرها ..
قال صلى الله عليه وسلم:
«كلمتان خفيفتان على اللسان
ثقيلتان في الميزان،حبيبتان إلى الرحمن:
سبحان الله وبحمده، سبحان الله العظيم».
