What is delegate ?
explain with simple program
A delegate in C# is similar to a function pointer in C or C++. Using a delegate allows the programmer to encapsulate a reference to a method inside a delegate object. The delegate object can then be passed to code which can call the referenced method, without having to know at compile time which method will be invoked. http://www.akadia.com/services/dotnet_delegates_and_events.html