If you ever find yourself wanting to duplicate code with just slight changes to adapt it to use a different type, then you will appreciate C# generics. Generic programming is sometimes called template programming because it allows you to write code that will be used later to generate the actual specific code.