08-10-12, 06:04 PM
كاتب الرد
أبو عابد
متقاعدد
كنت ناوي أضع سؤال عن التحميل الزائد للدوال ولكن بما أنك تطرقت لها هنا فسوف أضع سؤالي هنا ، بعد إذنك يعني
كيف نجمع بين هذين الإجراءين في الكلاس الواحد ؟
أعرف أن المشكلة أن كلاهما String
ولكن كيف لي أن أقوم بمثل هذا ؟
------------------------------------------
كاتب الرد
DreamNet
مبرمج متقاعد
السلام عليكم ورحمة الله وبركاته
بالنسبة للتحميل الزائد فان له ضوابط طبعا للاستعمال
http://www.devx.com/dotnet/Article/9303/1954
------------------------------------------------------------
كاتب الرد
أبو عابد
متقاعدد
و علكيم السلام ورحمة الله وبركاته
أهلاً بك DreamNet
أنت تعرف أن المشكلة أنه الإجراء المشيد للكلاس New
و لو كان غيره لأمكن تغييراسم الدالة و انتهت المشكلة .
لذلك أبحث عن طريقة لتمرير ، ولو ملتوية كهذه :
[/CODE]
-------------------------------------------.
كاتب الرد
Boutemine Oualid
كبار الشخصيات
جربت كل الطرق التي أعرفها و لم أجد الحل،
حاولت بهذه الطريقة و لم تنفع أيضا
هل من حل
-------------------------------------------------------
كاتب الرد احمد جمال
المشرف العام
للاسف لن يوجد حل فعلياً فهذا شرط اساسي في عمليات ال overloading لا يمكن تغييره ، إلا انه يمكن التحايل عليه ببعض الطرق مثل :
حيث يتم ارسال قيمة 0 او 1 لتحديد نوع المتغير المرسل .
الحل الآخر بارسال النص مرفق في نهايته برقم /0 او /1 مثلاً .
للاسف ال Optional لا يتم الاعتبار بها في الشروط .
لو لاحظت لن تجد MessageBox.Show تحدد ال Text فقط واخر لاظهار العنوان فقط ، إنما هناك واحد لاظهار النص وآخر لاظهار كل من العنوان والنص .
إذن الحل الامثل في هذه الحالة هو تمرير بارميتر اضافي يحتوي على 0 او 1 لتحديد فيما إذا كان المرسل بريد الكتروني ام اسم .
---------------------
أبو عابد
متقاعد
توصلت لحل (ملتوي طبعاً)
في مشروعي الحالي أنا أمرر 2 بارمتر للمشيد ، ولذلك نحج معي هذا الحل
أبو عابد
متقاعدد
كنت ناوي أضع سؤال عن التحميل الزائد للدوال ولكن بما أنك تطرقت لها هنا فسوف أضع سؤالي هنا ، بعد إذنك يعني
كيف نجمع بين هذين الإجراءين في الكلاس الواحد ؟
كود :
Public Sub New(ByVal UserName As String)
_UserName = UserName
End Subكود :
Public Sub New(ByVal Email As String)
_Email = Email
End Subأعرف أن المشكلة أن كلاهما String
ولكن كيف لي أن أقوم بمثل هذا ؟
------------------------------------------
كاتب الرد
DreamNet
مبرمج متقاعد
السلام عليكم ورحمة الله وبركاته
بالنسبة للتحميل الزائد فان له ضوابط طبعا للاستعمال
http://www.devx.com/dotnet/Article/9303/1954
------------------------------------------------------------
كاتب الرد
أبو عابد
متقاعدد
و علكيم السلام ورحمة الله وبركاته
أهلاً بك DreamNet
أنت تعرف أن المشكلة أنه الإجراء المشيد للكلاس New
و لو كان غيره لأمكن تغييراسم الدالة و انتهت المشكلة .
لذلك أبحث عن طريقة لتمرير ، ولو ملتوية كهذه :
كود :
[CODE] Sub New(ByVal intID As Integer)
Me._ID = intID
End Sub
Sub New(ByVal intAge As Int64)
Me._Age = intAge
End Sub-------------------------------------------.
كاتب الرد
Boutemine Oualid
كبار الشخصيات
جربت كل الطرق التي أعرفها و لم أجد الحل،
حاولت بهذه الطريقة و لم تنفع أيضا
كود :
PublicClass Car
Private _Model AsString
Private _Name AsString
PublicSubNew(ByVal Name AsString)
EndSub
PublicSubNew(ByRef Model AsString, OptionalByVal maskParam As Object = Nothing)
EndSub
EndClassهل من حل
-------------------------------------------------------
كاتب الرد احمد جمال
المشرف العام
للاسف لن يوجد حل فعلياً فهذا شرط اساسي في عمليات ال overloading لا يمكن تغييره ، إلا انه يمكن التحايل عليه ببعض الطرق مثل :
كود :
Public Sub New(ByVal UserName As String, ByVal Type as Integer)حيث يتم ارسال قيمة 0 او 1 لتحديد نوع المتغير المرسل .
الحل الآخر بارسال النص مرفق في نهايته برقم /0 او /1 مثلاً .
للاسف ال Optional لا يتم الاعتبار بها في الشروط .
لو لاحظت لن تجد MessageBox.Show تحدد ال Text فقط واخر لاظهار العنوان فقط ، إنما هناك واحد لاظهار النص وآخر لاظهار كل من العنوان والنص .
إذن الحل الامثل في هذه الحالة هو تمرير بارميتر اضافي يحتوي على 0 او 1 لتحديد فيما إذا كان المرسل بريد الكتروني ام اسم .
---------------------
أبو عابد
متقاعد
توصلت لحل (ملتوي طبعاً)
في مشروعي الحالي أنا أمرر 2 بارمتر للمشيد ، ولذلك نحج معي هذا الحل
كود :
Public Class Users
Private _Engine As Object
Private _UseName As String
Private _Email As String
Sub New(ByVal Engine As Object, ByVal UseName As String)
End Sub
Sub New(ByVal Email As String, ByVal Engine As Object)
End Sub
End Class