The Generics class introduced in .NET 2.0 gives developers the flexibility to write methods once and then let the .NET Framework take care of type issues. This class is a tremendous asset -- there is no boxing of objects or casting of exceptions, which improves performance, compile errors show up earlier in the coding process, and generics are implemented right into the Common Language Runtime.
Professional .NET 2.0 Generics by Tod Golding covers many aspects of this implementation, from methods and delegates to reflection, serialization and remoting. Golding provides code samples in both VB and C# and also includes chapters for using generics in C++ and J#.
Chapter 10, Generics Guidelines, provides what the author describes as an "evolving list" of guidelines for working with the Generics class in .NET 2.0. Golding offers nearly two dozen suggestions, from the use of generic collections and consistent Type Parameter names to using the least specialized interface in your APIs.
Golding emphasizes that the guidelines are not steadfast rules:
"Guidelines can and should be violated under certain circumstances. They exist purely to help you define the rules that should shape your general practices for deciding how and when to use a generic type. When you find exceptions to the rule, by all means—violate the rule. Just be sure that you can defend each violation and, if you can, you'll be fulfilling the spirit of what the guideline is trying to achieve."