Generik membolehkan anda menulis kelas dan kaedah yang diparameterkan mengikut jenis, menyediakan keselamatan jenis dan kebolehgunaan semula tanpa pertindihan kod atau casting. Kekangan menyekat jenis apa yang boleh menjadi parameter generik, membolehkan penggunaan ahlinya dengan selamat. Generik berleluasa dalam C# (keseluruhan perpustakaan koleksi menggunakannya).
Masalah yang diselesaikan oleh generik
=> arr[i];
=> arr[i];
x = Get([] { , , }, );
