خرید بک لینک

تفاوتمیان 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

صفحه بندی