delegate چیست؟
1399-06-21

delegate چیست؟

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

در این مطلب قصد داریم بدانیم 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 چیست صحبت کردیم و فهیدیم که مهم‌ترین و بهترین استفاده از آنها چیست. به همین خاطر آکادمی آنلاین درسمن برای یادگیری هرچه بهتر شما عزیزان دوره آموزش سی شارپ پیشرفته را تهیه کرده است که در این دوره هر آنچه که برای یادگیری دلیگیت ها نیاز دارید، با تدریسی ساده و قابل فهم آورده شده است که می‌توانید از آن استفاده کنید.

مقالات مرتبط

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

pug (پاگ) چیست
مرضیه فتاحی
10

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

مطالعه مقاله

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

روش هایی که شما را طراح وب حرفه ای می کند!
فاطمه گلشنی پایدار
10

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

مطالعه مقاله

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

انواع سیستم های مدیریت پایگاه داده
زهرا چگینی
10

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

مطالعه مقاله

saas چیست؟ سرویس مبتنی بر فضای ابری

Software as a Service چه کاربردی دارد؟
زهرا چگینی
10

شما با سرویس مبتنی بر فضای ابری آشنا هستید؟ مطلب امروز ما در مورد یکی از این سرویس ها به نام saas می باشد، ما بررسی کرده ایم که saas چیست و چطور می توانید از آن استفاده کنید.

مطالعه مقاله

14 مورد از پرفروش ترین کتاب های پایتون که باید بخوانید

14 کتاب برتر آموزش پایتون از مبتدی تا حرفه ای
رکسانا طالبی
10

14 کتاب برتر آموزش زبان برنامه نویسی پایتون از مبتدی تا حرفه ای

مطالعه مقاله

قدرت زبان پایتون در چیست؟

قدرت زبان پایتون
زهرا چگینی
10

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

مطالعه مقاله