الدرس الثالث والأربعون - Operator Overloading - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113) +---- قسم : دورة .net 2008 . لنبدأ سوياً (http://vb4arb.com/vb/forumdisplay.php?fid=138) +---- الموضوع : الدرس الثالث والأربعون - Operator Overloading (/showthread.php?tid=5637) |
الدرس الثالث والأربعون - Operator Overloading - RaggiTech - 14-10-12 كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .السلام عليكم ورحمة الله وبركاته . في الانواع الرئيسية لنا ، نستخدم المعاملات المختلفة لتنفيذ عمليات على الفئات المشتقة منها ، فمثلاً المتغير من نوع Integer يفهم المعامل + على انه جمع ، - على انه طرح ... الخ . ايضاً المتغيرات من نوع String تفهم المتغير + مثلاً على انه لدمج نصين ، وهكذا . الآن لو قمنا بعمل Structure من نوع Point بالشكل التالي مثلاً : C#: كود : [FONT=Tahoma]public struct Point[/FONT] vb.net: كود : [FONT=Tahoma]Public Structure Point [/FONT] الآن جرب تعريف عدة نقاط ، واستخدام المعامل + او - لجمع وطرح النقاط ، ما تتوقعه ان تشاهد الناتج عبارة عن طرح ال x في النقطة الثانية من الأولى وكذا ال y ، أو جمعهما معاً ، إلا انك في الواقع لن تحصل سوى على رسالة خطأ تفيدك بأن structure المسمى Point لا يدعم معاملات الجمع والطرح . الآن سنقوم باضافة معاملات جمع وطرح إلى ال structure السابق : C#: كود : [FONT=Tahoma]public struct Point[/FONT] vb.net: كود : [FONT=Tahoma]Public Structure Point [/FONT] الآن يمكنك كتابة كود بالشكل التالي : كود : [FONT=Tahoma]Point p3 = p1 + p2;[/FONT] ستحصل على النتيجة الصحيحة لعملية جمع ال Points . ايضا يمكنك كتابة كود كالتالي مباشرة : كود : [FONT=Tahoma]p2-=p1;[/FONT] آخر ما سنتعرف عليه في هذا الجزء من الدرس ، انك لن تكون قادراً سوى على تعريف Static function من اجل عمل overloading لأي معامل . يتبع ... الدرس الثالث والأربعون - Operator Overloading - RaggiTech - 14-10-12 ليست معاملات الجمع والطرح فقط من يمكن عمل overloading ، بل يمكنك عمل ذلك لأي نوع من المعاملات ، فمثلاً ++ و -- في السي شارب فقط : كود : public static Point operator ++(Point p1) C#: كود : public override bool Equals(object o) vb.net: كود : Public Overloads Overrides Function Equals(ByVal o As Object) As Boolean والله الموفق ... والسلام عليكم ورحمة الله وبركاته . |