Books about Delegates provide the answer: Delegates were indeed invented to SIMPLIFY PROGRAMS. But this only works with large programs - delegates in small programs (with just a few classes) - only complicate.
When a program has a large number of classes, even more links between them arise. Classes call each other's methods, so each class must know its counterpart (the class it should call, the name of its method) and have access to it. In large programs, this network of links quickly devolves into chaos. And if something needs to be changed, many interconnected classes must be redesigned. Therefore, programmers intend to make classes more universal, so they can interact with any other class without knowing it individually.
The key expression programmers use to describe this mechanism is "reduction of responsibility". If instead of a reference to another specific class our class receives a black box - Delegate, we reduce its responsibility - it doesn't have to remember a specific counterparty.
Of course, in any program, there are classes that still remember specific counterparties, but if only one of two classes has the responsibility of remembering the counterparty, this simplifies our network twofold. Thus, Delegates greatly simplify the network between classes in large programs.
C# 3.0 Cookbook: More Than 250 solutions for C# 3.0 Programmers
2007 by Jay Hilyard, Stephen Teilhet

Download PDF
Advanced C# Programming
2002 by Paul Kimmel

Download PDF
Learning C# Through Small Projects
2024 by Denis Panjuta, Jafar Jabbarzadeh

Download PDF
See also: Top 10 eBook Organizers
How to download PDF:
1. Install Gooreader
2. Enter Book ID to the search box and press Enter
3. Click "Download Book" icon and select PDF*
* - note that for yellow books only preview pages are downloaded


