Generics आपको एक type द्वारा parameterized classes और methods लिखने देते हैं, code duplication या casting के बिना type safety व reusability प्रदान करते हुए। Constraints प्रतिबंधित करते हैं कि एक generic parameter कौन से types हो सकता है, उनके members के safe उपयोग को सक्षम करते हुए। Generics C# में व्यापक हैं (पूरी collections library उनका उपयोग करती है)।
वह समस्या जो generics हल करते हैं
=> arr[i];
=> arr[i];
x = Get([] { , , }, );
