Compartir a través de


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

Los tipos genéricos se agregaron a la versión 2.0 del lenguaje C# y Common Language Runtime (CLR). Estos tipos agregan el concepto de parámetros de tipo a .NET Framework, lo cual permite diseñar clases y métodos que aplazan la especificación de uno o más tipos hasta que el código de cliente declara y crea una instancia de la clase o del método. Por ejemplo, mediante la utilización de un parámetro de tipo genérico T, se puede escribir una clase única que otro código de cliente puede utilizar sin generar el costo o el riesgo de conversiones en tiempo de ejecución u operaciones de conversión boxing, como se muestra a continuación:

// Declare the generic class.
public class GenericList<T>
{
    void Add(T input) { }
}
class TestGenericList
{
    private class ExampleClass { }
    static void Main()
    {
        // Declare a list of type int.
        GenericList<int> list1 = new GenericList<int>();

        // Declare a list of type string.
        GenericList<string> list2 = new GenericList<string>();

        // Declare a list of type ExampleClass.
        GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
    }
}

Información general acerca de los genéricos

  • Utilice los tipos genéricos para maximizar la reutilización, seguridad de tipos y rendimiento del código.

  • El uso más común de genéricos es crear clases de colección.

  • La biblioteca de clases de .NET Framework contiene varias nuevas clases de colección genéricas en el espacio de nombres System.Collections.Generic. Éstas se deberían utilizar siempre que sea posible en lugar de clases como ArrayList en el espacio de nombres System.Collections.

  • Puede crear sus propias interfaces, clases, métodos, eventos y delegados genéricos.

  • Las clases genéricas se pueden restringir para permitir el acceso a métodos en tipos de datos determinados.

  • Se puede obtener información sobre los tipos que se utilizan en un tipo de datos genérico en tiempo de ejecución y mediante reflexión.

Secciones relacionadas

Para obtener más información:

Especificación del lenguaje C#

Para obtener más información, vea Especificación del lenguaje C#.

Vea también

Referencia

System.Collections.Generic

Tipos (Guía de programación de C#)

<typeparam> (Guía de programación de C#)

<typeparamref> (Guía de programación de C#)

Conceptos

Guía de programación de C#