Partager via


Mot clé par défaut dans le code générique (Guide de programmation C#)

Mise à jour : novembre 2007

Dans les classes et méthodes génériques se pose le problème de savoir comment assigner une valeur par défaut à un type paramétré T lorsque vous ne savez pas ce qui suit à l'avance :

  • Si T sera un type référence ou un type valeur.

  • Si T est un type valeur, s'il sera une valeur numérique ou un struct.

Étant donnée une variable t d'un type paramétré T, l'instruction t = null est valide uniquement si T est un type référence et t = 0 fonctionneront seulement pour les types valeurs numériques mais pas pour les struct. La solution est d'utiliser le mot clé default, qui retournera la valeur nulle pour les types référence et zéro pour les types valeur numériques. Pour les struct, il retournera chaque membre du struct initialisé à zéro ou null, selon qu'il s'agit de types valeur ou référence. L'exemple suivant de la classe GenericList<T> montre comment utiliser le mot clé default. Pour plus d'informations, consultez Vue d'ensemble des génériques.

public class GenericList<T>
{
    private class Node
    {
        //...

        public Node Next;
        public T Data;
    }

    private Node head;

    //...

    public T GetNext()
    {
        T temp = default(T);

        Node current = head;
        if (current != null)
        {
            temp = current.Data;
            current = current.Next;
        }
        return temp;
    }
}

Voir aussi

Concepts

Guide de programmation C#

Référence

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

Méthodes génériques (Guide de programmation C#)

System.Collections.Generic

Autres ressources

Génériques dans le .NET Framework