Event ها یک کلاس یا شیئ را قادر می سازند تا چیزهای مورد علاقه خود را به کلاس ها یا اشیاء دیگر اطلاع دهند. به کلاسی که رویداد را می فرستد ( یا برپا می کند) ناشر می گویند (publisher) و به کلاس هایی که رویداد را دریافت می کنند ( یا استعمال می کنند- handle) ، متعهد ( subscriber ) می گویند.
در یک فرم اپلیکیشن یا وب اپلیکیشن نمونه ی سی شارپ، شما متعهد رویدادهای برپا شده ی کنترل هایی مثل دکمه ها یا لیست باکس ها می شوید. شما می توانید از محیط توسعه یکپارچه (IDE) ویژوال سی شارپ برای مرور رویدادهایی که کنترل ها توانایی برپایی آنها را دارند استفاده کرده و آنهایی را که قصد استعمالشان دارید را انتخاب کنید. IDE بصورت خودکار یک متد خالی (بدون پیاده سازی) استعمال کننده رویداد و همچنین کدهایی برای متعهد شدن به آن رویداد را اضافه می کند.
بررسی رویدادها
رویدادها دارای خصوصیات زیر می باشند:
- ناشر تعیین می کند که چه زمانی یک رویداد برپا شود؛ متعهد ها تعیین می کنند که چه عملی در پاسخ به رویداد انجام دهند.
- یک رویداد می تواند چندین متعهد داشته باشد. یک متعهد می تواند چندین رویداد را از چندین ناشر استعمال (handle) کند.
- رویداد هایی که هیچ متعهدی ندارند، هرگز برپا نمی شوند.
- در رابط های کاربری گرافیکی ، از رویدادها معمولا" به عنوان علامت دهنده اعمالی که کاربر انجام می دهد (مثل کلیک کردن روی فلان دکمه) استفاده می شود.
- وقتی یک رویداد دارای چندین متعهد باشد، استعمال کنندگان رویداد بصورت همگام (سنکرون) در زمان برپایی رویداد، فراخوانی می شوند.
- می توان از رویدادها برای همگام سازی ریسمان ها (Thread) استفاده کرد.
- در کتابخانه کلاس دات نت فریم وورک، رویدادها بر پایه نوع وکالتی EventHandler و کلاس پایه ای EventArgs قرار گرفته اند.
مطالب مرتبط
برای اطلاعات بیشتر به مطالب زیر نگاه کنید:
- چطور: تعهد به رویدادها و خارج شدن از تعهد رویدادها
- چطور: انتشار رویدادهای منطبق با راهبردهای دات نت فریم وورک
- چطور: برپا کردن رویدادهای کلاس پایه در کلاس های مشتق شده
- چطور: پیاده سازی رویدادهای رابط
- همگام سازی ریسمان ها (بزودی)
- چطور: استفاده از یک دیکشنری برای ذخیره نمونه های رویداد (بزودی)
- چطور: پیاده سازی دستیابی کننده های سفارشی رویداد (بزودی)
- طراحی رویداد (بزودی)