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

مقالات مرتبط

تفاوت dp و px در برنامه نویسی اندروید

واحد های اندازه گیری اندروید
زهرا چگینی
10

به نظر شما تفاوت dp و px در برنامه نویسی اندروید، این دو واحد اندازه گیری چیست؟ پس ما را همراهی کنید.

delegate چیست؟

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

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

اکشن (Action) در سی شارپ، راهی برای خواناتر شدن کدها

موارد استفاده ی Action در سی شارپ
زهرا چگینی
10

Action در سی شارپ از پایه و اساس Delegate ها استفاده میکند، درحقیقت همان Delegate های هستند که کار را برای ما راحت تر میکنند.

Extension method درسی شارپ، راهی برای کارایی بالا در کدها

اکستنشن (extension) درسی شارپ
مرضیه فتاحی
10

هدف ما دانستن نکات مهمextension method در سی شارپ، نحوه استفاده و همچنین کاربرد آن در کدنویسی است. پس با ما همراه شوید.

لیست کامل تگ های html که هیچ کس به شما نخواهد گفت

آشنایی با تگ های html
زهرا چگینی
15

تگ ها در html نقش مهمی دارند زیرا تمامی کارهای html با تگ انجام می‌شود. به همین دلیل ما یک لیست کامل از تگ‌های html برای شما آماده کرده‌ایم تا از آن استفاده کنید.

ویژگی های جدید asp.net core که حیرت برنامه نویسان را برانگیخت

معرفی ویژگی های جدید asp.net core از مایکروسافت
مرضیه فتاحی
10

ویژگی های جدید asp.net core چیست؟ مایکروسافت در این نسخه چه امکاناتی را برای برنامه نویسانش قرار داده است. اگر شما هم خواهان دانستن این مطالب هستید، ما را همراهی کنید.