خرید بک لینک

تفاوتمیان delegate ,Event:

در زیرچند نمونه از تفاوت های میان این دو را ذکر کرده ام و در ادامه با یک مثال نحوهپیاده سازی آن را نشان خواهم داد:

Delegates

Events

یک تابع اشاره گر است که می تواند آدرس هر تابع دیگری را ذخیره کند

یک آرایه از Delegates  ها می باشند

پلی را برای ارتباط بین کنترل ها وتوابع ایجاد میکند

 

فقط یک تابع را می توانند صدا بزنند

 

 

 

 

مثال: فرضکنید دو فرم داریم یکی با نام Parent  . دیگری با نام Child  حال میخواهیم ترتیبی تثر دهیم تا هنگامی کهکاربر در روی دکمه ای در روی فرم child  کلیک می کند رنگ پشت زمینه فرم Parent  تغییر کند ولی این کار بهچه نحوی امکان پذیر است زیرا فرم child  از وجود فرم parent  با شی از Parent  با خبر نیست :

راه حلاستفاده از Delegate : بدین معنی که شما اشاره گری را بااستفاده از delegate  هب بین فرم Parent  و child ایجادمی کنید :

مراحل کار:

در محیطویژوال استودیو یک پروژه ویندوزی ایجاد نمایید و در فرم با نامهای Parent  و child  به آن اضافه کند حال در فرم parent  یک button  اضافه کند تا با استفاده از آن فرم Child نمایش داده شود

حال درفرمchild  ، یک  button  اضافه کنید تا با کلیک بر روی آن بتوانیم رنگفرم Parent  را تغییر دهیم . بر روی فرم Child  دوبار کلیک کنید و کد هایزیر را در آن وارد نمایید:

 

public delegate void changebackground(Colorcolor);

public event changebackgroundchangebackcolordelegate;

 

حال بر رویدکه خود در همین فرم(Child) دوبار کلیک کنید  و کد های زیر را در آن وارد کنید

        privatevoid button1_Click(objectsender, EventArgs e)

        {

            changebackcolordelegate(Color.Yellow);

         

      

 }

 

به فرم Parent  باز گردید و دوبار روی فرمکلیک کنید تا محیط کد نویسی آن باز شود

تابع زبررا درآن وارد کنید:

   private void set_color(Colorc)

        {

            this.BackColor= c;

        }

 

حال  بر روی دکمه خود دوبار کلیک کنید تا محیط کد نویسی آن باز شود و کد های زیر را درآنوارد نمایید

        privatevoid button1_Click(objectsender, EventArgs e)

        {

            childfrm = new child();

            frm.Show();

            frm.changebackcolordelegate += new child.changebackground(set_color);

        }

با اجرای این برنامه متوجهخواهید شد که وقتی بروی دکمه فرم Child  کلیک می کنید رنگ پشتزمینه فرم Parent  به صورت زرد در خواهد آمد

 

 

برچسب: نویسنده: کل مردم تاريخ: چهارشنبه 7 آبان 1393 ساعت: 18:27

صفحه بندی