C# Class Design Handbook: Coding Effective Classes by Richard Conway
* Gives you a deep understanding of the implications of every decision you can make in designing a class, so you are better equipped to take full advantage of C#'s power to create robust, flexible, reusable classes
* Lifts the lid on the simple syntax and examines what it really does behind the scenes
* Covers all the fundamentals on classes: the role of types in .NET, the different kinds of type C# creates, fundamental role of methods as containers of program logic, how .NET's delegate-based event system works, how to control and exploit inheritance in your types, and logical and physical code organization through namespaces and assemblies.