+ 3
Use a delegate in the following circumstances:
× An eventing design pattern is used.
× It is desirable to encapsulate a static method.
× The caller has no need to access other properties, methods, or interfaces on the object implementing the method.
× Easy composition is desired.
× A class may need more than one implementation of the method
read more here https://msdn.microsoft.com/en-us/library/ms173173.aspx



