khaledbelal
02-24-2010, 02:22 PM
الدرس الثامن والعشرون : ICloneable interface
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .
نواصل اليوم التعرف على الواجهات الشهيرة ، دورنا في هذا الدرس التعرف على ICloneable .
عملية ال clone يقصد بها عملية النسخ للكائن ، بمعنى اننا عندما نكتب الكود التالي :
c#:
int x=5;
int y=x;
vb.net:
Dim x As Integer = 5
Dim y As Integer = x
فإننا فعلياً نقوم بنقل قيمة x إلى y ، ولكن في حالة تعاملنا مع الفئات بالشكل التالي :
c#:
car x=new car("BMW");
car y = x;
vb.net:
Dim x As New car("BMW")
Dim y As car = x
في الواقع ان قيمة x لا تنتقل إلى y ، بل إن y يصبح يشير إلى المكان الذي فيه قيمة x ، ولذا فإن اي تعديل في قيمة x سيعدل قيمة y والعكس بالعكس . يمكنك مراجعة الدرس التالي لتفهم هذه النقطة بوضوح :
http://vb4arab.com/vb/showthread.php?t=10209
من هنا كانت عملية ال clone من اجل عمل نسخة جديدة في القيمة ووضعها في المتغير الآخر .
الواجهة ICloneable التي تحتوي على الدالة clone ،يمكن استخدامها لهذا الغرض ، حيث يمكننا كتابة كود كالتالي :
c#:
public object Clone()
{ return new car(this.carName); }
vb.net:
Public Function Clone() As Object
Return New car(Me.carName)
End Function
الآن اصبح بامكانك عمل نسخة جديدة باستخدام clone بالشكل التالي :
C#:
car x=new car("BMW");
car y=(car)x.Clone();
vb.net:
Dim x As New car("BMW")
Dim y As car = DirectCast(x.Clone(), car)
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .
نواصل اليوم التعرف على الواجهات الشهيرة ، دورنا في هذا الدرس التعرف على ICloneable .
عملية ال clone يقصد بها عملية النسخ للكائن ، بمعنى اننا عندما نكتب الكود التالي :
c#:
int x=5;
int y=x;
vb.net:
Dim x As Integer = 5
Dim y As Integer = x
فإننا فعلياً نقوم بنقل قيمة x إلى y ، ولكن في حالة تعاملنا مع الفئات بالشكل التالي :
c#:
car x=new car("BMW");
car y = x;
vb.net:
Dim x As New car("BMW")
Dim y As car = x
في الواقع ان قيمة x لا تنتقل إلى y ، بل إن y يصبح يشير إلى المكان الذي فيه قيمة x ، ولذا فإن اي تعديل في قيمة x سيعدل قيمة y والعكس بالعكس . يمكنك مراجعة الدرس التالي لتفهم هذه النقطة بوضوح :
http://vb4arab.com/vb/showthread.php?t=10209
من هنا كانت عملية ال clone من اجل عمل نسخة جديدة في القيمة ووضعها في المتغير الآخر .
الواجهة ICloneable التي تحتوي على الدالة clone ،يمكن استخدامها لهذا الغرض ، حيث يمكننا كتابة كود كالتالي :
c#:
public object Clone()
{ return new car(this.carName); }
vb.net:
Public Function Clone() As Object
Return New car(Me.carName)
End Function
الآن اصبح بامكانك عمل نسخة جديدة باستخدام clone بالشكل التالي :
C#:
car x=new car("BMW");
car y=(car)x.Clone();
vb.net:
Dim x As New car("BMW")
Dim y As car = DirectCast(x.Clone(), car)
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .