delegate چیست؟

تاریخ بروزرسانی : جمعه 21 شهریور 1399

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

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

delegate چیست؟ چه کاربردی دارد؟ چگونه و در چه موقعیت هایی باید ازآنها استفاده کرد؟ با ما همراه شوید تا تمامی این سوال ها دریابید.

delegate چیست؟

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

دراین مطلب قصد داریم بدانیم delegate چیست؟ چه کاربردی دارد؟ چگونه و در چه موقعیت هایی باید ازآنها استفاده کرد؟
اگر دوست دارید جواب این سوال هارا بدانید با ماهمراه باشید.
Delegate یکی از زیرساختی ترین مفاهیم است زیرا با یادگیری این مفهموم میتوان مفاهیمی از جمله Func-Event-Predicate (فانکشن) و اکشن در سی شارپ را به راحتی فراگرفت.
قبل از اینکه وارد بحث بشیم ابتدا، بحث واژه شناسی 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 )


آکادمی آنلاین درسمن برای یادگیری هرچه بهتر شما عزیزان دوره آموزش سی شارپ پیشرفته را تهیه کرده است، که در این دوره هر آنچه که برای یادگیری دلیگیت ها نیاز دارید  با تدریسی ساده و قابل فهم ارائه شده است، پیشنهاد ما به شما این است که این دوره را حتما مشاهده کنید.

 


اشتراک گذاری

کلمات کلیدی :
سی شارپ

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

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


نظر بدهید

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