منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الدرس الثالث والثلاثون - ال Events
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

لو جربنا الآن ان نقوم بعمل حدث معين لأي موظف عندنا ( مرض ... الخ ) أو لاي سيارة ( حادث اصدام ... الخ ) كنا نقوم بذلك سابقاً عن طريق Delegetes باسم Event مثلاً ، ونقوم بتمرير الدالة الخاصة بالحدث له ، وإذا كنت قد توسعت في ال Delegetes فأنت قادر على معرفة انك تستطيع عمل List بالاحداث التي تم تنفيذها على هذا ال Delegete .

الآن سنتعلم الأمر بطريقة جديدة عن طريق الكلمة المحجوزة Event ...
سنعرف في البداية Delegete مسؤول عن كافة الأحداث التي تحصل للسيارة مثلاً :
C#:

كود :
[FONT=Tahoma]public delegate void CarEventHandler(string msg);[/FONT]

vb.net:

كود :
[FONT=Tahoma]Public Delegate Sub CarEventHandler(ByVal msg As String) [/FONT]

والآن سنقوم بتعريف بعض الاحداث :
C#:

كود :
[FONT=Tahoma]public event CarEventHandler Exploded;[/FONT]
[FONT=Tahoma]public event CarEventHandler Damaged;[/FONT]

vb.net:

كود :
Public Event Exploded As CarEventHandler

كود :
[FONT=Tahoma]Public Event Damaged As CarEventHandler [/FONT]

الآن يمكنك ببساطة من خلال الكود تنفيذ اي حدث فيهم بالشكل التالي :
C#:

كود :
[FONT=Tahoma]Damaged("my car");[/FONT]


vb.net:

كود :
[FONT=Tahoma]Damaged("my car") [/FONT]


الآن يمكنك اختبار اي event==null ام لا لمعرفة إذا كان تم اطلاقه قبل ذلك أم لا .

آخر نقطة ، لاضافة دالة الحدث :

C#:

كود :
[FONT=Tahoma][color=black]Car.EngineHandler d = new Car.CarEventHandler(CarExploded);[/color][/FONT]

vb.net:

كود :
Dim d As Car.EngineHandler = New Car.CarEventHandler(CarExploded)



والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .