Partager via


Génériques (guide de programmation C#)

Les génériques ont été ajoutés à la version 2.0 du langage C# et du Common Language Runtime (CLR). Les génériques introduisent dans le .NET Framework le concept de paramètres de type, qui rendent possible la réception des classes et des méthodes dont la spécification d'un ou de plusieurs types diffère jusqu'à ce que la classe ou la méthode soit déclarée et instanciée par code client. Par exemple, en utilisant un paramètre T de type générique, vous pouvez écrire une classe unique qu'un autre code client peut utiliser sans induire le coût ou le risque de casts d'exécution ou d'opérations de boxing, comme illustré ici :

// Declare the generic class.
public class GenericList<T>
{
    void Add(T input) { }
}
class TestGenericList
{
    private class ExampleClass { }
    static void Main()
    {
        // Declare a list of type int.
        GenericList<int> list1 = new GenericList<int>();

        // Declare a list of type string.
        GenericList<string> list2 = new GenericList<string>();

        // Declare a list of type ExampleClass.
        GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
    }
}

Vue d'ensemble des génériques

  • Utilisez les types génériques pour optimiser la réutilisation de code, la sécurité du type et les performances.

  • L'utilisation la plus courante de génériques consiste à créer des classes de collection.

  • La bibliothèque de classes .NET Framework contient plusieurs nouvelles classes de collection de génériques dans l'espace de noms System.Collections.Generic. Ceux-ci doivent être utilisés chaque fois que possible à la place de classes telles que ArrayList dans l'espace de noms System.Collections.

  • Vous pouvez créer vos propres interfaces, classes, méthodes, événements et délégués génériques.

  • Les classes génériques peuvent être contraintes pour activer l'accès aux méthodes sur des types de données particuliers.

  • Les informations sur les types qui sont utilisés dans un type de données générique peuvent être obtenues par réflexion lors de l'exécution.

Rubriques connexes

Pour plus d'informations :

Spécification du langage C#

Pour plus d'informations, consultez Spécification du langage C#.

Voir aussi

Référence

System.Collections.Generic

Types (Guide de programmation C#)

<typeparam> (guide de programmation C#)

<typeparamref> (guide de programmation C#)

Concepts

Guide de programmation C#