Delegate چیست؟ و در سی شارپ چه کاربردی دارد؟

Delegate نوعی مرجع به یک متد است. به عبارت ساده‌تر، می‌توانید آن را به عنوان "اشاره‌گر به متد" در نظر بگیرید که اجازه می‌دهد آدرس یک متد را ذخیره کرده و آن را به‌صورت غیرمستقیم فراخوانی کنید. این شباهتی به اشاره‌گرهای تابع در زبان C دارد، با این تفاوت که Delegateها نوع ایمن هستند و از بررسی‌های نوع در زمان کامپایل بهره می‌برند.

Delegate چیست؟ و در سی شارپ چه کاربردی دارد؟

Delegate نوعی مرجع به یک متد است. به عبارت ساده‌تر، می‌توانید آن را به عنوان “اشاره‌گر به متد” در نظر بگیرید که اجازه می‌دهد آدرس یک متد را ذخیره کرده و آن را به‌صورت غیرمستقیم فراخوانی کنید. این شباهتی به اشاره‌گرهای تابع در زبان C دارد، با این تفاوت که Delegateها نوع ایمن هستند و از بررسی‌های نوع در زمان کامپایل بهره می‌برند.

Delegate در واقع نوعی “قرارداد” است که مشخص می‌کند یک متد باید چه نوع ورودی‌ها و خروجی‌ای داشته باشد. این ویژگی باعث می‌شود تا وابستگی بین کلاس‌ها کاهش یابد و انعطاف‌پذیری در برنامه‌نویسی افزایش پیدا کند، زیرا می‌توان بدون تغییر مستقیم در ساختار کلاس‌ها، متدهای مختلف را به Delegate متصل کرد و به راحتی رفتارهای متنوعی را پیاده‌سازی نمود. این ویژگی باعث می‌شود بتوان متدهایی با امضای مشابه را به یک Delegate متصل کرد و با استفاده از آن، به شکل انعطاف‌پذیری از متدهای مختلف استفاده نمود.

منبع  : باگتو

برای مشاهده کامل مطلب کلیک کنید

اشتراک‌گذاری

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *