Condividi tramite


Parola chiave default in codice generico (Guida per programmatori C#)

Aggiornamento: novembre 2007

Nelle classi e nei metodi generici, è determinante capire come assegnare un valore predefinito a un tipo T con parametri quando non si dispone in anticipo delle informazioni riportate di seguito:

  • Non si sa se T sarà un tipo di riferimento o un tipo di valore.

  • Nel caso in cui T sia un tipo di valore, non si sa se sarà una struttura o un valore numerico.

Data una variabile t di un tipo T con parametri, l'istruzione t = null sarà valida solo se T è un tipo di riferimento e t = 0 sarà valida solo per i tipi di valore numerico e non per le strutture. La soluzione consiste nell'utilizzare la parola chiave default che restituirà null per i tipi di riferimento e zero per i tipi di valore numerico. Per le strutture, restituirà ogni membro della struttura inizializzato su zero o null a seconda che si tratti di tipi di valore o di riferimento. Nell'esempio riportato di seguito riferito alla classe GenericList<T> viene illustrato come utilizzare la parola chiave default. Per ulteriori informazioni, vedere Cenni preliminari sui generics.

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;
    }
}

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Generics (Guida per programmatori C#)

Metodi generici (Guida per programmatori C#)

System.Collections.Generic

Altre risorse

Generics in .NET Framework