A palavra-chave default em código fonte "genérico" (Guia de programação C#)
Em métodos e classes genéricas, um problema que surge é como atribuir um valor padrão a um tipo parametrizado T quando você não souber a seguir antecedência:
Se T será um tipo de referência ou um tipo de valor.
Se T é um tipo de valor, se ele será um valor numérico ou uma struct.
Dado uma variável t de tipo parametrizado T, a demonstrativo t = nulo é válido somente se T é um tipo de referência e t = 0 será apenas trabalho para tipos de valores numéricos, mas não para structs.A solução é usar o default palavra-chave, que retornará nulo para tipos de referência e zero para tipos de valor numérico. Para structs, ele retornará cada membro da estrutura inicializada para zero ou nulo dependendo se elas são tipos de valor ou referência.O exemplo a seguir do GenericList<T> classe mostra como usar o default palavra-chave. Para obter mais informações, consulte Visão geral de genéricos.
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;
}
}
Consulte também
Conceitos
Referência
Generics (Guia de programação C#)
Métodos genéricos (Guia de programação C#)