Compartir a través de


Palabra clave predeterminada en código genérico (Guía de programación de C#)

Actualización: noviembre 2007

Un problema asociado a las clases y métodos genéricos es la forma de asignar un valor predeterminado a un tipo parametrizado T cuando no se tiene por anticipado la siguiente información:

  • Si T será un tipo de referencia o un tipo de valor.

  • Si T es un tipo de valor, si será un valor numérico o una estructura.

Dada una variable t de un tipo parametrizado T, la instrucción t = null sólo es válida si T es un tipo de referencia y t = 0 sólo funcionará con los tipos de valor numérico, pero no con las estructuras. La solución es utilizar la palabra clave default, que devolverá null para los tipos de referencia y cero para los tipos de valor numérico. En el caso de las estructuras, devolverá cada miembro de la estructura inicializado con el valor cero o null, dependiendo de si son tipos de valor o de referencia. El ejemplo siguiente de las clases GenericList<T> muestra cómo utilizar la palabra clave default. Para obtener más información, vea Información general sobre los genéricos (Guía de programación de C#).

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

Vea también

Conceptos

Guía de programación de C#

Referencia

Genéricos (Guía de programación de C#)

Métodos genéricos (Guía de programación de C#)

System.Collections.Generic

Otros recursos

Genéricos en .NET Framework