PDA

View Full Version : تفاوت بین delegate و event در چیست؟



mohsen_csharp
دوشنبه 10 فروردین 1388, 10:20 صبح
می دانیم که delegate می تواند اشاره به متد هایی هم پارامتر و با نوع بازگشتی یکسان داشته باشد. و اگر این delegate ، به اصطلاح آتش شود، آنگاه تمام متد هایی که به آن متصل می باشد نیز اجرا خواهند شد.:لبخندساده:

حال شما کلاسی را در نظر بگیرید که در داخل آن یک متغیر public از نوع delegate مربوطه و یک event نیز به صورت public از همان delegate تعریف شده باشد. حالا ما به این متغیر ها، متد هایی را در داخل کلاس و در خارج از این کلاس متصل می کنیم.

حالا اگر ما در داخل این کلاس هر یک از این متغیرهای delegate و یا event را آتش کنیم تمام متدهایی که به آنها متصل شده ، چه داخل کلاس و چه خارج کلاس، اجرا می شوند.
پس یک متغیر delegate تمام قدرت یک متغیر event را دارد پس لزوم وجود event در چیست.
البته یک تفاوت بین آنها این است که متغیر event را نمی توان از خارج از کلاس آتش کرد ولی متغیر delegate را می توان از خارج از کلاس آتش کرد.
آیا لزوم وجود event فقط به همین خاطر است؟:متفکر:

mohsen_csharp
سه شنبه 11 فروردین 1388, 09:55 صبح
از اساتید گرامی کسی هست منو راهنمایی کنه؟