To Pass methods of One Class to objects of other cloasses that can call those methods.
you Can pass both static and instance Methods.
C# delegates are implemented in the .Net Framework as a Class derived from System.Delegate.
Use of Delegate:
Declare Delegate Object with a Signature that exactly matches the method Signature that you are trying to encapsulate.
Define all methods whose signature match the signature of the Delegate object that you have defined in step1.
Create delegate object and plug in the methods that you want to encapsulate.
Call the Encapsulate method through the Delegate Object.