Chapter 5. Fast-tracked delegates

 

This chapter covers

  • Long-winded C# 1 syntax
  • Simplified delegate construction
  • Covariance and contravariance
  • Anonymous methods
  • Captured variables

The journey of delegates in C# and .NET has been an interesting one, showing remarkable foresight (or really good luck) on the part of the designers. The conventions suggested for event handlers in .NET 1.0/1.1 didn’t make a lot of sense—until C# 2 showed up. Likewise, the effort put into delegates for C# 2 seems in some ways out of proportion to how widely used they are—until you see how pervasive they are in idiomatic C# 3 code. In other words, it’s as if the language and platform designers had a vision of at least the rough direction they’d be taking, years before the destination itself became clear.

Of course, C# 3 isn’t a final destination in itself—generic delegates get a bit more flexibility in C# 4, C# 5 makes it easy to write asynchronous delegates, and we may see even more advances in the future—but the differences between C# 1 and C# 3 in this area are the most startling ones. (The primary change in C# 3 supporting delegates is in lambda expressions, which you’ll meet in chapter 9.)

5.1. Saying goodbye to awkward delegate syntax

 
 
 

5.2. Method group conversions

 
 
 
 

5.3. Covariance and contravariance

 
 

5.4. Inline delegate actions with anonymous methods

 
 
 

5.5. Capturing variables in anonymous methods

 
 
 

5.6. Summary

 
 
 
sitemap

Unable to load book!

The book could not be loaded.

(try again in a couple of minutes)

manning.com homepage