‫حسنا.
‫إذن ما هو المندوب؟
‫حسنًا ، بعبارات بسيطة ، المفوض هو نوع يمكنه الاحتفاظ بمرجع إلى طريقة.
‫وعندما تتصل بالمفوض ، سيتم استدعاء الطريقة المشار إليها.
‫تخيل أننا نطور مكتبة واجهة مستخدم يمكن للمطورين الآخرين استخدامها لبناء تطبيقات الأجهزة المحمولة ، وأحد عناصر
‫واجهة المستخدم التي يمكن للمطورين الآخرين استخدامها هو الزر.
‫إذا نظرنا إلى الكود الموجود خلف فئة الأزرار المستخدمة لإنشاء الزر
‫الأخضر على الشاشة ، فسيكون لزر مثل هذا الخصائص التالية ، وهي عبارة عن سلسلة تسمى نص
‫مع القيمة المرسلة ، وهو لون يسمى اللون الخلفي ، وهو شيء أخضر و الدورة الثانية ، تسمى الحجم W والحجم H لعرض الزر
‫وارتفاعه.
‫الآن ، ما ينقص هنا هو طريقة تحتوي على الكود الذي يجب تنفيذه بمجرد النقر فوق
‫الزر.
‫الآن لدينا مشكلة هنا.
‫نحن ، بصفتنا المطورين الذين صنعوا نظام واجهة المستخدم هذا ، لا يمكننا معرفة ما يريد المطورون الآخرون الذين يستخدمون نظام
‫واجهة المستخدم لدينا أن يفعله الزر عند النقر فوقه.
‫لهذا السبب نحتاج إلى تقديم حدث عند النقر كمفوض وليس كطريقة عادية.
‫ونظرًا لأن المندوب متغير يمكنه تخزين مرجع لطريقة ما ، كما سمعنا سابقًا ، يمكن
‫للمطورين الآخرين كتابة التنفيذ الخاص بهم داخل طريقة تحتوي على المنطق الذي يريدون
‫تنفيذه عند النقر وتعيينه إلى الأزرار عند النقر مندوب شرطة مائلة.
‫نحن نقدمها ويمكن تعريف مندوب النقر الخاص بنا على هذا النحو.
‫لذلك دعونا الآن نقسمها قليلاً.
‫سنبدأ بكتابة الوصول المحدد إلى هذه الكلمة الأساسية الخاصة ، متبوعة بالكلمة المفتاحية للمفوض
‫، والتي تخبر المترجم أننا نحدد نوعًا جديدًا.
‫وأخيرًا ، نحتاج إلى تحديد نوع الأساليب التي يمكن لمندوبنا تخزينها.
‫وأعني بالنوع أن نوع الإرجاع والمعلمات الموجودة في انقر فوق المندوب هي اسم المفوض الذي حددناه
‫للتو.
‫الآن الخطوة التالية هي إنشاء متغير من نوع المفوض الجديد.
‫لذلك نحدده تمامًا كما نحدد أي متغير في C-sharp.
‫من خلال البدء بـ public ، ثم نوع المتغير الذي نقوم بإنشائه ، والذي يتم تشغيله عند النقر فوق "تفويض".
‫وأخيرًا ، اسم المتغير الذي يتم النقر عليه.
‫لذا مرة أخرى ، قمنا بتعريف نوع متغير عام من النوع في Click Delegate وقمنا بتسميته عند النقر.
‫يمكن لهذا المتغير الاحتفاظ بمرجع أو تخزينه لأي طريقة طالما أنها خالية كنوع الإرجاع ولا
‫تأخذ أي معلمة.
‫وإلا ، فسنحصل على خطأ مشابه عندما نحاول تخزين عدد عشري داخل متغير.
‫فكيف يمكننا استخدام هذا المندوب الجديد؟
‫حسنًا ، لنفترض أننا نسحب الزر الذي تم إسقاطه في لوحة الرسم الخاصة بنا في المعرف الذي نستخدمه لتطوير تطبيق الهاتف
‫المحمول هذا باستخدام نظام واجهة المستخدم الذي نتج عنه إنشاء كائن زر.
‫لنفترض أن اسم هذا الزر قد تم إرساله.
‫لذلك دعونا أولاً نضيف المنطق الذي نريد تنفيذه عند النقر فوق الزر.
‫في حالتنا ، نريد الاتصال بالشبكة ، وإرسال رسالة ، ثم عرض رسالة للمستخدم.
‫الآن لدينا طريقة عادية تسمى Send Button Click والتي لم يتم توصيلها بعد بالزر بأي شكل من الأشكال.
‫لإصلاح ذلك ، نحتاج إلى تعيين طريقتنا إلى متغير النقر من النوع في انقر فوق تفويض.
‫لاحظ أننا كتبنا اسم طريقتنا بدون الأقواس لأننا لا نسميها ، نحن فقط نخزن
‫مرجعها في المفوض الصحيح.
‫الآن تحت الغطاء ، إذا كان الماوس يحوم فوق الزر وتم النقر فوق الماوس ، فسيقوم نظام واجهة المستخدم الخاص بنا
‫باستدعاء المفوض عند النقر لزر الإرسال الخاص بنا والذي بدوره سيستدعي أي طريقة تم تعيينها
‫له.
‫في هذه الحالة ، سيتم استدعاء نقرة زر الإرسال وسيتم عرض مربع حوار الرسالة المرسلة.
‫بهذه الطريقة ، يمكن لأي شخص يستخدم نظام واجهة المستخدم الخاص بنا إنشاء أساليب خاصة به ، ثم تعيين أساليبهم
‫لمندوبنا ويمكننا الاتصال بهم متى كانت الظروف مناسبة.
‫نحن لا نقتصر على انقر فوق الأحداث.
‫يمكننا حتى إنشاء مفوضين عند بدء التطبيق أو إغلاقه ، على سبيل المثال.
‫حسنًا ، كان هذا مثالًا مجردًا جدًا ، ولكن هذا هو حالة استخدام حقيقية للمندوبين بشكل عام.
‫لذلك سنتعلم بعد ذلك كيفية استخدام أحد المندوبين الموجودين بالفعل في C-sharp.
‫وبعد ذلك ، سنبدأ في تكوين مندوبين خاصين بنا ، على غرار ما فعلناه في هذا المثال.
‫لذلك نراكم في الفيديو التالي.