Introduction Recipe 4.1. Deciding When and Where to Use Generics Recipe 4.2. Understanding Generic Types Recipe 4.3. Getting the Type of a Generic Type Recipe 4.4. Replacing the ArrayList with Its Generic Counterpart Recipe 4.5. Replacing the Stack and Queue with Their Generic Counterparts Recipe 4.6. Implementing a Linked List Recipe 4.7. Creating a Value Type That Can Be Initialized to Null Recipe 4.8. Reversing the Contents of a Sorted List Recipe 4.9. Making Read-Only Collections the Generic Way Recipe 4.10. Replacing the Hashtable with Its Generic Counterpart Recipe 4.11. Using foreach with Generic Dictionary Types Recipe 4.12. Constraining Type Arguments Recipe 4.13. Initializing Generic Variables to Their Default Values |