الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

متى يلزم استخدام الكلمة Overloads

بدأه nmfaraj911 في 10 يوليو 2011 · 5 رد · 450 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كلمة Overloads تتيح لنا كتابة اجراء (ٍsub) أو دالة (Function) لها نفس الأسم مع اختلاف الوسائط ، مثلاَ :

Public Class clsOverLoads
    Public Overloads Sub Input(ByVal A As String)
        Debug.Print("String")
    End Sub

    Public Overloads Sub input(ByVal A As Integer)
        Debug.Print("Integer")
    End Sub

    Public Overloads Sub input()
        Debug.Print("Nothing")
    End Sub
End Class


Dim cls As New clsOverLoads
    cls.input("بسم الله")
    cls.input(5)
    cls.input()

ستكون النتيجة

String
Integer
Nothing

الأن نستطيع كتابة نفس الفئة بدون استخدام الكلمة OverLoads تؤدي الى نفس النتائج

Public Class clsOverLoads
    Public Sub Input(ByVal A As String)
        Debug.Print("String")
    End Sub

    Public Sub input(ByVal A As Integer)
        Debug.Print("Integer")
    End Sub

    Public Sub input()
        Debug.Print("Nothing")
    End Sub
end class

والسؤال الأن متى اكون مجبر على استخدام الكلمة OverLoads ؟

تم تعديل هذه المشاركة بواسطة nmfaraj911 في 10 يوليو 2011 في 01:31

#2
nmfaraj911 كتب:

والسؤال الأن متى اكون مجبر على استخدام الكلمة OverLoads ؟

لست مجبراً لاستخدامها بتاتاً. هي تبقى خياراً يستخدم عادةً كنوع من التذكير بأن هذه الدوال هي overload لبعضها البعض.

#3

السلام عليكم ورحمه الله وبركاته

اخي مفهوم ال Overloading هو تطبيق لخاصية ال Polymorphism والتي تسمح للكائنات من النظر للكائن الحالي من اكثر من وجه, فعلى سبيل المثال الشجرة البعض ينظر لها كظل وقت الحر, والبعض ينظر لها كحطب .. الخ, لذا يمكنك استخدام كلمة ال Overloads في البرمجة الغرضية التوجه لتطبيق مفهوم ال Polymorphism كما اشرت له سابقا, واقولها اولا واخرا يمكنك استخدامة كلمة Overloads لتطبيق المفهوم (Explicit) او بدونها (Implicit) وهذا من مرونة لغة الفيجول بيسك للتعريف ضمنيا او غير ضمنيا

.:: Wish to become better and better ::.

#4

شكرا أخي VB Helper و System Down

يعني خلاصة الكلام ان استخدام الكلمة Overloads تبقى اختيارية الا في حالة واحدة كما في هذا المثال : نريد تكوين فئة جديدة clsNew مع اشتقاق الفئة clsOverLoads واردنا تغيير الأجراء الثاني

    Public Sub input(ByVal A As Integer)
        Debug.Print("Integer")
    End Sub

ليطبع كلمة Number بدل Intger سأكون ملزما باستخدام كلمة overloads في الفئة المشتقة

Public Class clsNew
    Inherits clsOverLoads

    Public Overloads Sub input(ByVal A As Integer)
        Debug.Print("Number")
    End Sub

End Class

اذا لم استخدم الكلمة Overloads سيعترض المترجم وينتج رسالة خطأ

هل كلامي مقبول :blush:

ودمتم سالمين

#5

السلام عليكم ورحمه الله وبركاته

اخي انصحك باستخدام Shadow, وللمزيد شوف الرابطين التاليين

http://stackoverflow.com/questions/463209/shadows-vs-overrides-in-vb-net

http://geekswithblogs.net/dlussier/archive/2008/01/15/118585.aspx

1

.:: Wish to become better and better ::.

#6
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي انصحك باستخدام Shadow, وللمزيد شوف الرابطين التاليين

http://stackoverflow.com/questions/463209/shadows-vs-overrides-in-vb-net

http://geekswithblogs.net/dlussier/archive/2008/01/15/118585.aspx

وعليكم السلام ورحمة الله وبركاته

شكرا لك ، الأن وضحت كثير من الأمور

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…