Seniorسختی 4 از ۵· در 65٪ مصاحبههای این حوزه پرسیده شده
تفاوت Delegate و Event چیست؟
☆نشان کردنپاسخ کوتاه
Delegate اشارهگر Type-safe به یک متد است؛ Event لایهای روی Delegate است که فقط اجازه Subscribe/Unsubscribe از بیرون کلاس را میدهد.
پاسخ کامل
Delegate هر جایی قابل Invoke است، اما Event فقط از داخل کلاسی که آن را تعریف کرده قابل Invoke است — از بیرون فقط میتوان به آن Subscribe یا از آن Unsubscribe کرد؛ این کپسولهسازی امنیت بیشتری به الگوی Publisher/Subscriber میدهد.
اشتباه رایج
❌ عمومی (public) کردن یک Delegate بهجای Event، که اجازه Invoke از هر جایی از کد را میدهد.
