Generics memungkinkan Anda menulis kelas dan method yang diparameterisasi oleh tipe, memberikan type safety dan reusability tanpa duplikasi kode atau casting. Constraints membatasi tipe apa yang dapat digunakan oleh parameter generic, memungkinkan penggunaan member mereka dengan aman. Generics tersebar luas di C# (seluruh library collections menggunakannya).
Masalah yang generics selesaikan
=> arr[i];
=> arr[i];
x = Get([] { , , }, );
