Generikat ju lejojnë të shkruani klasa dhe metoda të parametrizuara nga një tip, duke siguruar siguri tipi dhe ripërdorim pa duplikim kodi ose casting. Kufizimet kufizojnë se çfarë tipesh mund të jetë një parametër gjenerik, duke mundësuar përdorimin e sigurt të anëtarëve të tyre. Generikat janë të përhapura në C# (e gjithë biblioteka e koleksioneve i përdor ato).
Problemi që zgjidhin generikat
=> arr[i];
=> arr[i];
x = Get([] { , , }, );
