منتدى رياض الجنة - Riad Al-Ganah

منتدى رياض الجنة - Riad Al-Ganah (https://montada.khaledbelal.com/index.php)
-   دورة .NET 2008 من منتدى فيجوال بيسك للعرب (https://montada.khaledbelal.com/forumdisplay.php?f=57)
-   -   الدرس السادس عشر : ال OverLoading دورة .net 2008 (https://montada.khaledbelal.com/showthread.php?t=533)

khaledbelal 02-19-2010 08:11 PM

الدرس السادس عشر : ال OverLoading دورة .net 2008
 
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

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

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

MessageBox.Show(string text);
MessageBox.Show(string text,string caption);
MessageBox.Show(string textstring captionMessageBoxButtons buttons); 

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

كود PHP:

ShowWithString
ShowStringAndCaption
ShowStringAndCaptionAndButtons 

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

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

C#:
كود PHP:

static int Add(int xint y)
{ return 
y; }
static 
double Add(double xdouble y)
{ return 
y; }
static 
long Add(long xlong y)
{ return 
y; } 

vb.net:
كود PHP:

Private Shared Function Add(ByVal x As IntegerByVal y As Integer) As Integer 
    
Return 
End 
Function 
Private 
Shared Function Add(ByVal x As DoubleByVal y As Double) As Double 
    
Return 
End 
Function 
Private 
Shared Function Add(ByVal x As LongByVal y As Long) As Long 
    
Return 
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 StringByVal lname As String
        
        
        
FirstName fname 
        
        LastName 
lname 
        
            
        Console
.WriteLine("c2"
    
End Sub 
    
    
Public Sub New(ByVal fname As StringByVal lname As StringByVal 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


ماريا إسلام 03-02-2011 03:43 PM

وعليكم السلام ورحمة الله وبركااته
،،،
جزااكم الله خيراا كثيراا ،

//


الساعة الآن 04:29 PM.

Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية

Ads Management Version 3.0.1 by Saeed Al-Atwi

a.d - i.s.s.w