Summary
Delegates offer a first-class system-defined and system-implemented mechanism for uniformly
representing callbacks. In this chapter, you saw various ways to declare and create delegates of dif-
ferent types, including single delegates, chained delegates, open instance delegates, and
anonymous methods, which are themselves delegates. Additionally, I showed how to use delegates
as the building blocks of events. You can use delegates to implement a wide variety of design pat-
terns, since delegates are a great means for defining a programming contract. And at the heart of
just about all design patterns is a well-defined contract.
The next chapter covers the details of generics, which is arguably one of the most powerful fea-
tures of the CLR and ...