![]() |
|
الدرس الثالث والثلاثون - ال Events - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113) +---- قسم : دورة .net 2008 . لنبدأ سوياً (http://vb4arb.com/vb/forumdisplay.php?fid=138) +---- الموضوع : الدرس الثالث والثلاثون - ال Events (/showthread.php?tid=5627) |
الدرس الثالث والثلاثون - ال Events - RaggiTech - 14-10-12 كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .السلام عليكم ورحمة الله وبركاته . لو جربنا الآن ان نقوم بعمل حدث معين لأي موظف عندنا ( مرض ... الخ ) أو لاي سيارة ( حادث اصدام ... الخ ) كنا نقوم بذلك سابقاً عن طريق 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]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)والله الموفق ... والسلام عليكم ورحمة الله وبركاته . |