Generika umožňují psát třídy a metody parametrizované typem, čímž poskytují bezpečnost typů a znovupoužitelnost bez duplikace kódu nebo castování. Omezení omezují, jaké typy může generický parametr být, což umožňuje bezpečné použití jejich členů. Generika jsou všudypřítomná v jazyce C# (celá knihovna kolekcí je používá).
Problém, který generika řeší
=> arr[i];
=> arr[i];
x = Get([] { , , }, );
