delegate چیست؟

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

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

مقالات مرتبط

CSS Grid چیست و چگونه به طراحی خلاقانه وب کمک میکند؟

آیا می‌دانید css grid چیست و چه کاربردی دارد؟ کافیست برای آشنایی بیشتر این تکنولوژی همراه درسمن باشید تا به طور کامل با آن آشنا شوید.

avatar
رکسانا طالبی
1389

sass چیست؟ بهترین پیش پردازنده css

شما تا به حال با پیش پردازنده های css کار کرده اید؟ در این مقاله بایکی از پیش پردازنده های css به نام sass آشنا می شوید،می خواهیم بدانیم sass چیست و چه کاربردهایی دارد؟

avatar
زهرا چگینی
3371

برترین فریمورک‌ های Css راهی برای طراحی آسان سایت

Css یکی دیگر از زبان‌های نشانه‌گذار تحت‌وب است که فریمورک‌های بسیاری را دارد اما آیا با برترین فریمورک‌های آن آشنا هستید. پس اگر می‌خواهید فریم ورک‌های css را بشناسید ما را همراهی کنید.

avatar
مرضیه فتاحی
3303

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

(0 نظر)
0
0
0
0
0

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