Geneerikot antavat sinun kirjoittaa luokkia ja metodeja, jotka ovat parametrisoitu tyypeillä, tarjoten tyyppiturvaa ja uudelleenkäytettävyyttä ilman koodin monistamista tai tyyppimuunnoksia. Rajoitukset rajoittavat, mitä tyyppejä geneerinen parametri voi olla, mahdollistaen turvallisen käytön niiden jäsenistä. Geneerikot ovat laajasti käytössä C#:ssa (koko kokoelmakirjasto käyttää niitä).
Ongelma, jonka geneerikot ratkaisevat
=> arr[i];
=> arr[i];
x = Get([] { , , }, );
