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

برنامه نویسی پیشرفته سی شارپ برای پروژه های سی شارپ دات نت - فصل اول: Delegate ها و Event ها - بخش اول: Delegate چیست؟

Delegate چیست؟

Delegate به طور مشخص به یک متد اشاره می کند. ما می توانیم Delegate را همانند یک متد با استفاده از عبارت کلیدی Delegate تعریف کنیم. سپس می توانیم یک نمونه از Delegate را ایجاد کرده و به یک متد مرتبطش کنیم. Delegate و متد هر دو باید از یک ساختار و تعریف برخوردار باشند. نمونه ای از یک Delegate می تواند برای فراخوانی متدی که خود به آن اشاره می کند استفاده شود. بنابراین Delegate برای کپسوله کردن متد استفاده می شود.

در زبان C و ++C زمانی که از نشانگر های توابع برای اشاره کردن به یک تابع استفاده می کنیم، از مکانیسم callback بهره می بریم. اما اینجا در زبان #C از delegate ها برای اشاره به متد های استاتیک و متد های با خروجی از نوع object استفاده می کنیم. delegate اطلاعات مربوط به تعداد پارامتر ها و نوع بازگشتی متد را دارد، در حالی که نشانگر تابع فقط اطلاعات آدرس مربوط به تابع را دارد.

با این شرحی که ارایه شد، می توانیم بگوییم که delegate ها راهی امن و مخفی کننده نوع متد، و راهی مناسب در برنامه نویسی Object-Oriented فراهم می کنند. Delegate ها زمانی که مکانیسم callback و مدیریت رویداد ها (Event Handling) مورد نیاز هست مفیدند.

اسلوب تعریف delegate

modifier delegate returntype delegatename(parameters);

نحوه و اسلوب تعریف یک delegate بدین شکل است که در سطر فوق نوشته ایم. ساختار تعریف یک delegate باید با ساختار تعریف متدی که قرار هست delegate به آن اشاره داشته باشد یکسان باشد.

What is Delegate - Modifier
Modifier که طبق روال می تواند موارد زیر باشد:

 

private ، protected ، public ، new و internal
برای تعریف delegate باید از فضای نام System.Delegate  استفاده کنیم.

 

What is Delegate - Delegate

Delegate نیز یک نوع متفاوتی از یک کلاس هست و مانند بقیه انواع کلاس ها قابل استفاده است. به صورت پیش فرض این کلاس ها به صورت Sealed هستند و نمی توان نمونه ای از آنها منتج کرد.

return type هم که نوع برگشتی delegate است و delegatename هم که مشخص است که نام delegate را تعیین می کند و پارامتر های مورد نیاز متد نیز که با واژه parameters مشخص می شود.



نام را وارد کنید
تعداد کاراکتر باقیمانده: 1000
نظر خود را وارد کنید