Hi Ishan
Here is a short YT video that reveals the purpose of delegates. It helped me a lot.
Delegate Basics
Basically, delegates are types intended to contain the method signature (return value and parameters list). Another name for delegates is higher order functions.
The purpose is to manipulate methods in the same manner as parameters. This approach provides advanced programming paradigms such as multicast invoking, callbacks, code decoupling, etc..