الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الفرق بين ال delegate وال event

بدأه ahmedfci في 24 أغسطس 2010 · 2 رد · 2,063 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد معرفة الفرق بين ال delegate وال event في السي شارب

#2

وجهان لعملة واحدة , هي عملة الـ Delegate فالـ Event هو delegate ليس إلا بميزة واحدة فقط :

عندما تقوم بالربط مع حدث , فلا تستطيع إلا عمل Attach , De attach وبالتالي يقوم يقوم الـ event بحماية مراقبيه (الـ observer ), بمعنى اّخر لا يستطيع أحد أن يحذف كافة مراقبي الحدث , بالأحرى لا يمكن تنفيذ الكود التالي :

Button1.click=new EventHandler<MouseClick>(click_handler);

بل أنت مجبر على إستعمال فقط الـ =+ و =- , أي :

Button1.click+=new  EventHandler<MouseClick>(click_handler);

وهما الربط و فك الربط على الترتيب , وهذا سلوك منطقي للغاية ...

أتمنى أن تكون لأمور قد وضحت

1 −1
#3

بارك الله بك أخي AliBazzi ولكن delegate شيء و Event شيء آخر وإن إرتبط تعريف Event بdelegate!!!

event : هي وسلية لإرسال رسالة Message عند حدوث شيء ما في غرض معين ، ويتم إستقباله من قبل أغراض آخرى قامت بالإشتراك كمتلقين Receivers لهذا الحدث ..

delegate : هو مؤشر على Method محدد بحيث تحمل هذه Method نفس signature التي يعرفها delegate...

Event يستخدم delegate في نمط تعريفه لإجبار المتلقين Receivers على نمط تعريف محدد للإجرائية Method التي ستقوم بإستقبال الحدث ... هذا فقط ما يربط الإثنين ببعضهما .. delegate له إستخدامات أخرى كثيرة خارجة عن مفهوم الأحداث event ..

في الرابط التالي شرح أفضل : Events and Delegates

بالتوفيق

1

مواضيع مشابهة