شما می توانید با عضویت در انجمن پرسش و پاسخ درسمن هرگونه سوالی دارید را مطرح کنید

delegate چیست؟

تاریخ بروزرسانی : ﺳﻪشنبه 21 خرداد 1398

تعداد بازدید : 1597

گروه دوره : CSharp

زمان خواندن مقاله : 15

Delegate یکی از زیرساختی ترین مفاهیم است زیرا با یادگیری این مفهموم میتوان مفاهیمی از جمله Func-Event-Predicate-Action را به راحتی فراگرفت.

delegate چیست؟

Delegate ها چرا به زبان سی شارپ اضافه شدند؟

دراین مطلب قصد داریم بدانیم delegate چیست؟ چه کاربردی دارد؟ چگونه و در چه موقعیت هایی باید ازآنها استفاده کرد؟
اگر دوست دارید جواب این سوال هارا بدانید با ماهمراه باشید.
قبل ازاینکه وارد بحث بشیم ابتدا بحث واژه شناسی Delegate را بررسی میکنیم.
Delegate به معنای نماینده است، فرضا ما در دنیای واقعی فردی را نماینده میکنیم که به جای ما یک یا چند کار را انجام دهد و در نهایت نتیجه ی کارها را به ما گزارش دهد.
در دنیای برنامه نویسی ،زبان سی شارپ نیزدقیقا به همین معنا میتوان ازآن استفاده کرد، یعنی اینکه ما یک نماینده میسازیم که یک یا چند کاررا انجام دهد.

حتما الان که پاراگراف بالا را مطالعه کردید سوالی در ذهنتان با این مضمون بازی میکند، که به راستی یک Delegate چه وظایفی را میتواند انجام دهد؟

درپاسخ به این سوال اینطور بیان میکنیم که Delegate ها درواقع اشاره گری به متد/متدهایی میتواند باشد که شرایط لازم را دارا هستند.(به زبان ساده تر میتوان Delegate را خشابی ازمتدها فرض نمود و همچنین یک Delegate که شرایط لازم را داراست میتواند نماینده متد یا متدهایی باشد.)

سوال بعدی که پیش می آید این است که مصداق از"شرایط لازم" چیست؟

فرض کنید چند متد(رفتار) تعریف کردید: به عنوان مثال:
  1. "حرکت کردن"
  2. "خوابیدن"
  3. "غذا خوردن"

شرایط:

اول اینکه با این فرض که این سه متد یک آرگومان ورودی دارند و همچنین نوع خروجی هرسه void می باشد.
دوم اینکه فرض میگیریم جنس آرگومان ورودی هرسه نیزازنوع آرایه ای ازمدل Animals است.
پس یاد گرفتیم درزبان سی شارپ قابلیتی وجود دارد که میتوان اشاره گری ساخت که نماینده یک یا چند متد باشد که هرکدام از آن متدها کارهای متفاوتی را انجام میدهند. فقط نکته ی مهم این است که خروجی متد باید با خروجی Delegate و آرگومان یا آرگومان های ورودی متدها نیز برابر با آرگومان Delegate باشد. مصداق از برابربودن، از لحاظ نوع داده ای است.

مهم ترین استفاده ها از Delegate:

  1. استفاده به عنوان اجراکننده هرمتد که امضای آن برابر با خود Delegate باشد.
  2. استفاده به عنوان یک رویداد در برنامه نویسی (Event CallBack)

مفهموم single cast delegate به این اشاره می کند که هر Delegate می تواند فقط به یک متد اشاره کند اما مفهموم multicast delegate دقیقا با این مفهموم در تضاد است و بیانگر این است که هرdelegate می تواند به بیش از یک متد اشاره کند.


مهم ترین استفاده ها از Delegate :

- 1 استفاده به عنوان اجرا کننده هر متد که امضای آن برابر با خود Delegate باشد

- 2 استفاده به عنوان یک رویداد در برنامه نویسی ( Event CallBack )


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

آموزش Delegate بخش اولمشاهده )

آموزش Delegate بخش دوممشاهده )

آموزش Delegate بخش سوممشاهده )


اشتراک گذاری


توضیحاتی در مورد نویسنده این مقاله :
مرضیه فتاحی مرضیه فتاحی

کارشناس کامپیوتر گرایش نرم افزار..... نویسندگی،تجربه ای انفرادی است یعنی به اشتراک گذاری.... این بخشی از ذات انسان است که بخواهد مسائل را به اشتراک بگذارد ازجمله:افکار،ایده ها،عقاید


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

گروه مقالات


آموزشی
18
علمی
16
تحقیقاتی
22


به دنبال هر آموزشی هستید در اینجا به دنبال آن باشید .