مقــدمه عن Delegates - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
السبت
2016-12-10
5:32 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

مقــدمه عن Delegates
Delegate in C Sharp

مقـــــدمه
ال delegate هو كائن يستخدم في الاشارة الى دوال معينه , او بمعنى اخر فهو يقوم بحمل الدوال وتنفيذها بطريقه غير مباشره , فبدلا من مناداة الداله مباشره داخل البرنامج , يقوم ال delegate بحملها وتنفيذها .
تعريف ال Delegate
اولا قبل ان نقوم بخلق Delegate جديد , لابد من تحديد نوع الداله التي سوف يحملها , ويجب ان تتوافر الشروط الاتيه :
1- نوع البيانات التي ستعود من الداله -- من حيث void or string or int  ... الخ -- , يجب ان تتطابق مع نوع ال delegate .
2- عدد المعاملات Parameters ونوعها يجب ان يكونوا متطابقين في كلا من ال delegate والداله التى سوف يقوم بحملها وتنفيذها .  
تعريف Delegate و دالته
 
فكما رأينا من الكو السابق , فلابد ان يتطابق ال delegate مع نوع وعدد المعاملات في الدوال التي سيقوم بتنفيذها , وهذه تعتبر المرحلة الاولى من استخدام ال delegate , ثم تأتي مرحلة التنفيذ , فحتى هذه المرحلة ليس هناك اي علاقه بين ال delegate والداله او الدوال الموجوده في البرنامج , حيث سنقوم بتحميل ال delegate بالداله التي نريده ان ينفذها , ثم نقوم بتنفيذها من خلاله بطريقه غير مباشره كما سنرى في الكود الاتي .
تنفيذ الدوال من خلال ال Delegate
 
من خلال الكود السابق يتضح اكثر استخدام ال delegate حيث قام كلا من ال delegate الثلاثه بحمل الداله التي تتطابق معه , ثم قام بتنفيذها , وستكون النتيجة كما في الصورة


ففي البدايه نقوم بتعريف delegate جديد و تحميله الداله التي سيقوم بتنفيذها داخل قوسي ال constructor , وعند تنفيذ الداله يتم استدعاء الداله Invoke من ال delegate , حيث تقوم هذه الداله بتنفذ ما يحمله ال delegate و ايضا بحمل المعاملات التي في الداله - ان وجدت .
لمــــاذا استخــدم ال Delegate
الكثير يتساءل , لماذا استخدم ال delegate في حين اننا نستطيع الدالة مباشره دون الحاجة اليه ؟ , وهذا تساؤل منطقي جدا , فنستطيع في المثال السابق تنفيذ الدوال الثلاثه مباشره باستدعائها في البرنامج دون الحاجة الى deleget , ولكن .. عندما نقوم بشرح كيفيه تعريف واستخدام ال delegate فنحن نعرض الفكره العامة بطريقه بسيطه حتى يكون الاستيعاب اسرع , فالافضل هنا هو تبسيط الامور , حيث ان ال delegates هي جزء اساسي من اللغه ولا يمكن الاستغناء عنها نهائيا , فاستخدامها لا يقتصر على تنفيذ الدوال بطريقه غير مباشره , ولكن لها اهميه كبيره , فعند تعريف حدث Event جديد لابد من استخدام ال Delegate , حيث يعتبر جزء اساسي من تعريف الحدث -- هذه من اهم استخدامات ال Delegate بصفه عامة -- , وايضا عن تعريف thread جديد لتنفيذ مهمة معينه في البرنامج , فلابد من استخدام ال delegate يحمل الداله التي سوف ينفذها ال thread , وهكذا هناك العديد والعديد من الاستخدامات التي جعلت منه ذا اهمية كبرى لأي مطور
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-08-07 12:00 PM)
مشاهده: 3244 | وسمات: C#, delegate | الترتيب: 0.0/0


أترك تعليقك من خلال حسابك على الفيس بوك

تعليقات مشتركي الموقع

مجموع المقالات: 0
إضافة تعليق يستطيع فقط المستخدمون المسجلون
[ التسجيل | دخول ]
طريقة الدخول
بحث
Our Facebook community

تم إطلاق صفحة توب كودر على الفيس بوك

Advertisment
الأحـــدث
hitstatus
Copyright Mohammed Mahmoud © 2016
إنشاء موقع مجاني с uCoz