event ها (رویدادها) در C#

یکشنبه 5 خرداد 1398

جهت تعریف رویداد در C# حتما باید با مفهوم Delegateها آشنایی داشته باشید رویدادها زمانی اجرا می‌شوند که کنش مربوطه انجام شده باشد. شنیدین میگن هر کنش یه واکنش داره... ، اینم دقیقا مربوط به همون قضیه است. مثلا میخواین وقتی کاربر اسمش رو وارد کرد و خواست وارد سیستم بشه براش پیغام "سلام _..._ خوش آمدی" نمایش داده بشه.

جهت تعریف رویداد در C#  حتما باید با مفهوم Delegateها آشنایی داشته باشید
رویدادها زمانی اجرا می‌شوند که کنش مربوطه انجام شده باشد.
شنیدین میگن هر کنش یه واکنش داره... ، اینم دقیقا مربوط به همون قضیه است.
مثلا میخواین وقتی کاربر اسمش رو وارد کرد و خواست وارد سیستم بشه براش پیغام "سلام _..._ خوش آمدی" نمایش داده بشه.

خب واسه این کار ابتدا یه Delegate تعریف میکنیم.

public delegate void OnPersonEntered();

بعدش یه کلاس تعریف کرده و داخل اون کلاس به پیاده سازی رویدادمون میپردازیم

public class Person
{
    public event OnPersonEntered onPerson_Entered;

    public void Enter()
    {
        // Enter person to Program
        if (onPerson_Enter != null)
            onPerson_Enter();
    }

}

null نبودن رویداد به این معنی است که شما برای این رویداد یک تابع تعریف کردین و الان میخواین اجرا بشه (مثل همون رویداد کلیک که واسه Button نوشته میشه، که اگه نباشه هرچی هم شما Button رو فشار بدین بازم هیچ اتفاقی نمیفته...)

مثلا تابع ما میشه اینجوری

punblic void ShowHello(){
    MessageBox.Show("چطوری خوشگله\n خوش اومدی گلم");
}

تابع به صورت زیر به رویداد میچسبه

Person person;
person=new Person();
person.onPerson_Enter +=ShowHello;

البته تو برنامه های پیشفرض از یه چیز دیگه ای استفاده میشه

btnEnter+=new EventHandler(btnEnter_Click);

 که این موضوع رو من خداییش نمیدونم چجوریه !!!!!!!!!

امیدوارم به علم‌تون اندکی افزوده باشم

alireza786t

نویسنده 2 مقاله در برنامه نویسان
  • C#.net
  • 2k بازدید
  • 3 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید