I think that I conceptually understand C# delegates, however, I am struggling to find a real world example where they would be useful.  Can you provide some answers detailing how C# delegates were used in real applications and what problems they enabled you to get around.
Real world use of C# Delegates
c#;delegates
GUI code uses delegates to handle events, such as button clicks, window moves. Using the delegate allows you do have a function called whenever the event occurs. An example would be linking a function that saves data to a Save button on the interface. When the button gets clicked it is set up to execute the function that saves data. It's useful in GUI programming because your whole program could be waiting for the user to do something and you have no way of knowing what they will do first. Using delegates allows the functionality of your program to be connected to the UI in such a way that the user can do things in any way they want.