صفحه اصلی / مقالات / آموزشی / Delegate در سی شارپ

Delegate در سی شارپ

نام مستعار نویسنده : احمد

تاریخ انتشار : شنبه 10 فروردین 1398

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

گروه دوره : برنامه نویسی وب

تعداد لایک ها : 0

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

مفهوم Delegate یا Delegation (واگذاری مسئولیت)

قبل از اینکه وارد بحث بشیم ابتدا بحث واژه شناسی Delegate را بررسی میکنیم.

فی الواقع یک Delegate به معنای نماینده است، فرضا ما در دنیای واقعی فردی را نماینده میکنیم که به جای ما یک یا چند کار را انجام دهد،
و درنهایت نتیجه ی کارها را به ما گزارش دهد
.

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

حتما همین الان که پاراگراف بالا را مطالعه کردید سوالی در ذهنتان با این مضمون بازی میکند، که به راستی یک Delegate چه وظایفی را میتواند انجام دهد؟

در پاسخ به این سوال اینطور بیان میکنیم که Delegate ها در واقع اشاره گری به متد/متدهایی می تواند باشد که شرایط لازم را دارا هستند.
(به زبان ساده تر می توان
 Delegate  را خشابی از متد ها فرض نمود و همچنین یکDelegate که شرایط لازم را داراست میتواند نماینده متد یا متدهایی باشد)

سوال بعدی که پیش می آید این است که مصداق از "شرایط لازم" چیست؟

فرض کنید چند متد (رفتار) تعریف کردید : به عنوان مثال :

-1 "حرکت کردن"
-2 "خوابیدن"
-3 "غذا خوردن"

شرایط :
اول اینکه با این فرض که این سه متد یک آرگومان ورودی دارند و همچنین نوع خروجی هر سه void می باشد
دوم اینکه فرض میگیریم جنس آرگومان ورودی هر سه نیز از نوع آرایه ای از مدل Animals است.

 

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

مفهموم single cast delegate به این اشاره می کند که هر Delegate می تواند فقط به یک متد اشاره کند اما مفهموم multicast delegate دقیقا با این مفهموم در تضاد است و بیانگر این است که هرdelegate می تواند به بیش از یک متد اشاره کند.

مهم ترین استفاده ها از Delegate :

- 1 استفاده به عنوان اجرا کننده هر متد که امضای آن برابر با خود Delegate باشد

- 2 استفاده به عنوان یک رویداد در برنامه نویسی ( Event CallBack )

برای توضیح کامل تر این مفهموم میتوانید از فیلم های آماده شده که در ذیل آماده است استفاده کنید :

آموزش Delegate بخش اولمشاهده )

آموزش Delegate بخش دوممشاهده )

آموزش Delegate بخش سوممشاهده )

 


اشتراک گذاری


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

دارای مدرک کارشناسی


نظر بدهید

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

گروه مقالات


آموزشی علمی


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

آخرین دوره های منتشر شده