نمایندهها در سیشارپ اشیایی هستند که ارجاعی به متدها را در خود نگه میدارند و امکان فراخوانی انعطافپذیر و پویای متدها را فراهم میکنند. آنها کاربردهای کلیدی متعددی دارند:
مدیریت رویدادها
- رویدادها در سیشارپ بر اساس نمایندهها هستند و اجازه میدهند متدها هنگام وقوع یک رویداد فراخوانی شوند.
- نماینده
EventHandler معمولاً برای این منظور استفاده میشود. - مثال: رویداد
Clicked یک دکمه، متدهای مشترک را فراخوانی میکند.
فراخوانهای (Callbacks)
- نمایندهها میتوانند به عنوان آرگومان به متدها ارسال شوند و امکان انتخاب انعطافپذیر عملیات را فراهم کنند.
- مثال: یک متد
Calculate یک نماینده را به عنوان آرگومان میپذیرد که نشان دهنده عملیات (جمع، تفریق و غیره) است.
مرتبسازی سفارشی
- نمایندهها میتوانند منطق مرتبسازی سفارشی را تعریف کنند.
- مثال: مرتبسازی لیستی از رشتهها بر اساس طول آنها به جای ترتیب الفبایی.
الگوی زنجیره مسئولیت (Chain of Responsibility)
- نمایندهها میتوانند زنجیرهای از پردازشگرها برای یک درخواست را تشکیل دهند.
- هر پردازشگر تصمیم میگیرد که آیا درخواست را پردازش کند یا آن را به پردازشگر بعدی ارسال کند.
- مثال: زنجیرهای از پردازشگرها برای درخواستهای با اولویتهای مختلف.
برنامهنویسی تابعی
- نمایندهها برای برنامهنویسی تابعی در سیشارپ ضروری هستند.
Func، Action و Predicate برای توابع مرتبه بالاتر و پرس و جوهای LINQ استفاده میشوند.- مثال: استفاده از یک نماینده با
Where برای فیلتر کردن لیستی از اعداد.
مشاهده مطلب اصلی