Introduction
Delegates let you pass methods as parameters so you can call them later. This helps you run different code when something happens, like a callback.
When you want to run a method after another method finishes.
When you want to customize behavior without changing the original method.
When you want to notify other parts of your program about an event.
When you want to pass different actions to a method to run later.
When you want to keep your code flexible and reusable.