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
Riferimenti
Generics (Guida per programmatori C#)
Metodi generici (Guida per programmatori C#)