14-10-12, 04:20 PM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .السلام عليكم ورحمة الله وبركاته .
لو جربنا الآن ان نقوم بعمل حدث معين لأي موظف عندنا ( مرض ... الخ ) أو لاي سيارة ( حادث اصدام ... الخ ) كنا نقوم بذلك سابقاً عن طريق 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)
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .