14-10-12, 03:56 PM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .السلام عليكم ورحمة الله وبركاته .
نواصل اليوم التعرف على الواجهات الشهيرة ، دورنا في هذا الدرس التعرف على ICloneable .
عملية ال clone يقصد بها عملية النسخ للكائن ، بمعنى اننا عندما نكتب الكود التالي :
c#:
كود :
[FONT=Tahoma]int x=5;
int y=x;[/FONT]
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://vb4arb.com/vb/showthread.php?731
من هنا كانت عملية ال clone من اجل عمل نسخة جديدة في القيمة ووضعها في المتغير الآخر .
الواجهة ICloneable التي تحتوي على الدالة clone ،يمكن استخدامها لهذا الغرض ، حيث يمكننا كتابة كود كالتالي :
c#:
كود :
[FONT=Tahoma]public object Clone()
{ return new car(this.carName); }[/FONT]
vb.net:
كود :
Public Function Clone() As Object
Return New car(Me.carName)
End Function
الآن اصبح بامكانك عمل نسخة جديدة باستخدام clone بالشكل التالي :
C#:
كود :
[FONT=Tahoma]car x=new car("BMW");
car y=(car)x.Clone();[/FONT]
vb.net:
كود :
Dim x As New car("BMW")
Dim y As car = DirectCast(x.Clone(), car)
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .