Generics stellen je in staat om klassen en methoden te schrijven die geparameteriseerd zijn op een type, wat typeveiligheid en herbruikbaarheid biedt zonder codeduplicatie of casting. Constraints beperken welke typen een generieke parameter kan zijn, wat veilig gebruik van hun leden mogelijk maakt. Generics zijn alomtegenwoordig in C# (de volledige collections-bibliotheek gebruikt ze).
Het probleem dat generics oplossen
=> arr[i];
=> arr[i];
x = Get([] { , , }, );
