Generiker låter dig skriva klasser och metoder parametriserade med en typ, vilket ger typsäkerhet och återanvändbarhet utan kodduplicering eller casting. Constraints begränsar vilka typer en generisk parameter kan vara, vilket möjliggör säker användning av dess medlemmar. Generiker är genomgripande i C# (hela collections-biblioteket använder dem).
Problemet som generiker löser
=> arr[i];
=> arr[i];
x = Get([] { , , }, );
