Generics
Porquê generics?
Type checking, sem boxing, sem downcasts
Impede proliferação de cópias
// Lista de inteiros
List<int> intList = new List<int>();
intList.Add(1) // Sem boxing
intList.Add(2)
intList.Add("Three") // erro em tempo de compilação
int i = intList[0] // Cast não requerido

| Veja as vantagens do Generics:
| •Verifica o tipo em tempo de compilação
| •Aumento de performance, pois não é preciso fazer o Boxing ou Downcasts
| •Impede a proliferação de cópias de códigos
| Todas as linguagens .NET pode produzir e usar generics, no entanto você pode usar nas APIs internas ou públicas. O generics ainda não é parte do CLS, sendo assim, você precisa suportar alternativas de API não genéricas. A Microsoft está padronizando o generics nas linguagens e em tempo de execução.