mobile banner

delegate چیست؟

delegate چیست؟
مرضیه فتاحی
15 دقیقه13575 نفر
1399-06-21

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

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

Delegate، یکی از زیرساختی‌ترین مفاهیم است؛ زیرا با یادگیری این مفهموم میتوان مفاهیمی از جمله Func ،Event ،Predicate (فانکشن) و اکشن در سی شارپ را به راحتی فراگرفت.

قبل از اینکه وارد بحث بشیم ابتدا، بحث واژه‌شناسی 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 چیست؟


خب دوستان درباره delegate چیست صحبت کردیم و فهیدیم که مهم‌ترین و بهترین استفاده از آنها چیست. به همین خاطر آکادمی آنلاین درسمن برای یادگیری هرچه بهتر شما عزیزان دوره آموزش سی شارپ پیشرفته را تهیه کرده است که در این دوره هر آنچه که برای یادگیری دلیگیت ها نیاز دارید، با تدریسی ساده و قابل فهم آورده شده است که می‌توانید از آن استفاده کنید.
آموزش کار با SharedPreferences در اندروید(بخش سوم)
مرضیه فتاحیکارشناس کامپیوتر گرایش نرم افزار..... نویسندگی،تجربه ای انفرادی است یعنی به اشتراک گذاری.... این بخشی از ذات انسان است که بخواهد مسائل را به اشتراک بگذارد ازجمله:افکار،ایده ها،عقایدمشاهده سایر نوشته های من ...

مقالات مرتبط

pug (پاگ) چیست و از آن چه میدانید؟

حتما اسم پاگ را شنیده اید اما در دنیای برنامه نویسی چه میکند؟ با ما همراه شوید تا هر آنچه که درباره pug چیست را میخواهید، برایتان ارائه دهیم. پیشنهاد میکنم این مطلب را از دست ندهید.

مرضیه فتاحی
2897

چگونه یک طراح وب موفق شوم؟

در این مطلب یاد خواهید گرفت که راه و رسم طراح وب حرفه ای چگونه می باشد.

فاطمه گلشنی پایدار
1996

سیستم مدیریت پایگاه داده یا DBMS چیست

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

زهرا چگینی
7618

نظرات دانشجویان

(0 نظر)
0
0
0
0
0

هنوز اینجا کامنتی ثبت نشده