What is Delegation?
A delegate seems like a strongly type function pointer. Delegates can request the methods that they reference without making explicit calls to those methods. Delegate is an entity that is entrusted with the task of representation, assign or passing on information. In code sense, it means a Delegate is entrusted with a Method to report information back to it when a definite task (which the Method expects) is accomplished outside the Method's class.