المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس السادس عشر : ال OverLoading دورة .net 2008


khaledbelal
02-19-2010, 08:11 PM
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

من اهم مبادئ ال OOP هي تطبيق مبدئ ال Overloading ، حيث يمكن تسمية عدة طرق او دوال بنفس الاسم ما دام هناك تغيير في البارميترس .

ابسط مثال على عمليات ال Overloading هي دالة MessageBox.Show() في ال Windows Forms .
لو جربت ستجد هذه الأوامر مثلاً :

MessageBox.Show(string text);
MessageBox.Show(string text,string caption);
MessageBox.Show(string text, string caption, MessageBoxButtons buttons);


وغيرها ايضاً ضمن 7 اوامر ، كل واحدة منها عبارة عن دالة خاصة ولهم جميعاً نفس الاسم ، لنتصور لو لم يكن مبدأ Overloading موجوداً ، كنا سنضطر لكتابة دوال بالشكل التالي :


ShowWithString
ShowStringAndCaption
ShowStringAndCaptionAndButtons


أما الآن ولتسهيل الاستخدام تجدهم جميعاً بنفس الاسم ، وهذا ما يسبب سهولة الاستخدام .

لتطبيق مبدأ ال OverLoading في دوالك يمكنك كتابة كود بالشكل التالي - لعملية الجمع مثلاً في حين انك لا تدري هل يمرر لك في الكلاس قيم من نوع int او من نوع double - :

C#:

static int Add(int x, int y)
{ return x + y; }
static double Add(double x, double y)
{ return x + y; }
static long Add(long x, long y)
{ return x + y; }


vb.net:

Private Shared Function Add(ByVal x As Integer, ByVal y As Integer) As Integer
Return x + y
End Function
Private Shared Function Add(ByVal x As Double, ByVal y As Double) As Double
Return x + y
End Function
Private Shared Function Add(ByVal x As Long, ByVal y As Long) As Long
Return x + y
End Function


يمكن ان نعيد الكرة مرة أخرى مع ال Constructor ، فيمكنك عمل عدد منها حسب احتياج المستخدم ، لو عدنا لمثالنا Person يمكن تعريف ال Constructors بالشكل التالي :

c#:

class Person
{
public string FirstName;
public string LastName;
public int Age;

public Person()
{
Console.WriteLine("c1");
}
public Person(string fname,string lname)
{
FirstName = fname;
LastName = lname;
Console.WriteLine("c2");
}
public Person(string fname,string lname,int myage)
{
FirstName = fname;
LastName = lname;
Age = myage;
Console.WriteLine("c3");
}
}


VB.net:

Class Person


Public FirstName As String

Public LastName As String

Public Age As Integer



Public Sub New()



Console.WriteLine("c1")
End Sub

Public Sub New(ByVal fname As String, ByVal lname As String)


FirstName = fname

LastName = lname


Console.WriteLine("c2")
End Sub

Public Sub New(ByVal fname As String, ByVal lname As String, ByVal myage As Integer)


FirstName = fname

LastName = lname

Age = myage


Console.WriteLine("c3")
End Sub

End Class


وبهذه الطريقة يمكننا انشاء كائنات بأحد الطرق التالية :

C#:

Person MyEmpolyee = new Person();
Person MyEmpolyee = new Person("ahmed","gamal");
Person MyEmpolyee = new Person("ahmed", "gamal",22);


VB.net:

Dim MyEmpolyee As New Person()
Dim MyEmpolyee As New Person("ahmed", "gamal")
Dim MyEmpolyee As New Person("ahmed", "gamal", 22)

ماريا إسلام
03-02-2011, 03:43 PM
وعليكم السلام ورحمة الله وبركااته
،،،
جزااكم الله خيراا كثيراا ،

//