Generics საშუალებას გაძლევთ დაწეროთ კლასები და მეთოდები, რომლებიც პარამეტრიზებულია ტიპით, რაც უზრუნველყოფს ტიპის უსაფრთხოებას და ხელმისაწვდომობას კოდის დუბლირების ან cast-ის გარეშე. Constraints შეზღუდავს რა ტიპებს შეიძლება ჰქონდეს generic პარამეტრი, რაც ხელმისაწვდებელი გახდის მათი წევრების უსაფრთხო გამოყენებას. Generics ფართოდ გამოიყენება C#-ში (მთელი collections ბიბლიოთეკა იყენებს მათ).
ის პრობლემა, რომელსაც generics ხსნის
=> arr[i];
=> arr[i];
x = Get([] { , , }, );
