02-19-2010, 08:11 PM
|
|
مبرمج المنتدى الادارة تكليف لا تشريف
|
|
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
|
|
الدرس السادس عشر : ال OverLoading دورة .net 2008
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .
من اهم مبادئ ال OOP هي تطبيق مبدئ ال Overloading ، حيث يمكن تسمية عدة طرق او دوال بنفس الاسم ما دام هناك تغيير في البارميترس .
ابسط مثال على عمليات ال Overloading هي دالة MessageBox.Show() في ال Windows Forms .
لو جربت ستجد هذه الأوامر مثلاً :
كود PHP:
MessageBox.Show(string text);
MessageBox.Show(string text,string caption);
MessageBox.Show(string text, string caption, MessageBoxButtons buttons);
وغيرها ايضاً ضمن 7 اوامر ، كل واحدة منها عبارة عن دالة خاصة ولهم جميعاً نفس الاسم ، لنتصور لو لم يكن مبدأ Overloading موجوداً ، كنا سنضطر لكتابة دوال بالشكل التالي :
كود PHP:
ShowWithString
ShowStringAndCaption
ShowStringAndCaptionAndButtons
أما الآن ولتسهيل الاستخدام تجدهم جميعاً بنفس الاسم ، وهذا ما يسبب سهولة الاستخدام .
لتطبيق مبدأ ال OverLoading في دوالك يمكنك كتابة كود بالشكل التالي - لعملية الجمع مثلاً في حين انك لا تدري هل يمرر لك في الكلاس قيم من نوع int او من نوع double - :
C#:
كود PHP:
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:
كود PHP:
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#:
كود PHP:
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:
كود PHP:
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#:
كود PHP:
Person MyEmpolyee = new Person();
Person MyEmpolyee = new Person("ahmed","gamal");
Person MyEmpolyee = new Person("ahmed", "gamal",22);
VB.net:
كود PHP:
Dim MyEmpolyee As New Person()
Dim MyEmpolyee As New Person("ahmed", "gamal")
Dim MyEmpolyee As New Person("ahmed", "gamal", 22)
توقيع : khaledbelal |
(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}). سورة الأعراف.
|
|