currently i'm learning C# delegates. i understand the concept however i'm having hard time imagining situations when using delegates allows to solve problem that cannot be solved without using them or makes the process easier and code more maintanable & readible. could anyone post some straight-forward example that would help me understand delegates better?