تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الثامن والعشرون - ICloneable interface
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .


نواصل اليوم التعرف على الواجهات الشهيرة ، دورنا في هذا الدرس التعرف على 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)


والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الأول : تحميل .net 2008 ومميزات استخدامه oneyemenweb2 1 669 07-03-13, 02:04 AM
آخر رد: abdoojh
  اعلان - انتهاء الدورة - الدرس التاسع والسبعون -) RaggiTech 0 598 14-10-12, 11:23 PM
آخر رد: RaggiTech
  الدرس الثامن والسبعون - Ajax RaggiTech 2 869 14-10-12, 11:22 PM
آخر رد: RaggiTech
  الدرس السابع والسبعون - ASP.net وقواعد البيانات RaggiTech 2 906 14-10-12, 11:19 PM
آخر رد: RaggiTech
  الدرس السادس والسبعون - ASP.net - الجزء الثالث RaggiTech 7 1,145 14-10-12, 11:14 PM
آخر رد: RaggiTech
  الدرس الخامس والسبعون - ASP.net - الجزء الثاني RaggiTech 5 1,310 14-10-12, 11:07 PM
آخر رد: RaggiTech
  الدرس الرابع والسبعون - ASP.net RaggiTech 6 1,085 14-10-12, 10:58 PM
آخر رد: RaggiTech
  الدرس الثالث والسبعون - مقدمة إلى تطوير المواقع RaggiTech 4 843 14-10-12, 10:44 PM
آخر رد: RaggiTech
  الدرس الثاني والسبعون - مقدمة إلى Mono RaggiTech 0 594 14-10-12, 10:37 PM
آخر رد: RaggiTech
  الدرس الواحد والسبعون - XML Commenting RaggiTech 2 793 14-10-12, 10:35 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم