|
#1
|
||||
|
||||
الدرس التاسع والعشرون : IComparable interface دورة .net 2008
بسم الله الرحمن الرحيم . السلام عليكم ورحمة الله وبركاته . هذا هو آخر دروسنا مع ال interfaces الخاصة ، سنتعرف في هذا الدرس على IComparable interface . كما هو واضح من الاسم ، يستخدم هذا ال interface للمقارنة ، ولذا من الطبيعي ان يكون شكل هذا ال interface بالشكل التالي : كود PHP:
كود PHP:
يمكنك ملاحظة ان الدالة تعيد قيمة رقمية ، فعلياً هي تعيد في المعتاد القيم 0 في حالة التساوي ، القيمة 1 في حالة كون الطرف الأول اكبر ، و -1 في حالة كون الطرف الأول أصغر . طبعاً لا داعي من اعادة تذكيرك بالدرس السابق هنا : http://vb4arab.com/vb/showthread.php?t=10209 والذي قمنا فيه بمعرفة ان الكائنين يكونان متساويان ليس لاعتبارات تساوي قيمهم الداخلية بل النقطة في اشارتهم لنفس المكان في الذاكرة ، وهو ما لن نحتاجه ، حيث اننا نحتاج لمقارنة فعلية . وهذا ما قمنا به من خلال الدالة equals . اما النقطة التي لدينا هنا فلسنا بحاجة لمعرفة هل يساوي هذا الكائن ذاك ام لا ، بل نحن في حاجة إلى معرفة ايهما اكبر او اصغر ، ولنفترض تاريخ صنع السيارة ضمن الفئة الخاصة بها . ببساطة كما قمنا في الدرس السابق ، سنجعل الفئة الخاصة بنا تطبق الفئة IComparable ، ثم نكتب بعض الاكواد في الدالة CompareTo ، لنفترض الشكل التالي مثلاً : c#: كود PHP:
كود PHP:
الدالة Sort : لنفترض ان لدينا مصفوفة array من الارقام باسم myNumbers ، في هذه الحالة لو قمنا بكتابة الأمر التالي لكان الكود مفهوماً : c#: كود PHP:
كود PHP:
لكن في حالة كون الفئة car تطبق ال IComparable interface ، ففي هذه الحالة سيمكنك استخدام هذا الدالة ببساطة لإنها سوف تقوم بالمقارنة اعتماداً على دالة CompareTo التي قمت انت ببرمجتها ، ربما يكون هذا سبباً كافياً لتقوم بتطبيق هذا ال interface وكتابة كود الدالة بدلاً من كتابة دالة باسم check مثلاً او اي اسم آخر للقيام بنفس المهمة . هذا طبعاً بالاضافة لتسهيل استخدام الفئة الخاصة بكل لاحقاً ووضوحها لأي مبرمج آخر . والله الموفق ... والسلام عليكم ورحمة الله وبركاته .
|
|
|
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
الدرس الثامن والعشرون : ICloneable interface دورة .net 2008 | khaledbelal | دورة .NET 2008 من منتدى فيجوال بيسك للعرب | 0 | 02-24-2010 02:22 PM |
الدرس السابع والعشرون : IEnumerable interface دورة .net 2008 | khaledbelal | دورة .NET 2008 من منتدى فيجوال بيسك للعرب | 0 | 02-24-2010 02:18 PM |
الدرس الثاني والعشرون : ال polymorphism دورة .net 2008 | khaledbelal | دورة .NET 2008 من منتدى فيجوال بيسك للعرب | 0 | 02-22-2010 01:54 PM |
الدرس التاسع عشر : ال Encapsulation دورة .net 2008 | khaledbelal | دورة .NET 2008 من منتدى فيجوال بيسك للعرب | 0 | 02-20-2010 03:07 PM |
الدرس التاسع : ال Enumeration دورة .net 2008 | khaledbelal | دورة .NET 2008 من منتدى فيجوال بيسك للعرب | 0 | 02-18-2010 04:27 PM |