Les génériques vous permettent d'écrire des classes et des méthodes paramétrées par un type, offrant la sécurité des types et la réutilisabilité sans duplication de code ni conversion de type. Les contraintes restreignent les types qu'un paramètre générique peut être, ce qui permet l'utilisation sûre de leurs membres. Les génériques sont omniprésents en C# (toute la bibliothèque des collections les utilise).
Le problème que les génériques résolvent
=> arr[i];
=> arr[i];
x = Get([] { , , }, );
