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

Los genéricos se han agregado a la versión 2.0 del lenguaje C# y Common Language Runtime (CLR).Generics were added to version 2.0 of the C# language and the common language runtime (CLR). Los genéricos introducen en .NET Framework el concepto de parámetros de tipo, lo que le permite diseñar clases y métodos que aplazan la especificación de uno o varios tipos hasta que el código de cliente declare y cree una instancia de la clase o el método.Generics introduce to the .NET Framework the concept of type parameters, which make it possible to design classes and methods that defer the specification of one or more types until the class or method is declared and instantiated by client code. Por ejemplo, al usar un parámetro de tipo genérico T puede escribir una clase única que otro código de cliente puede usar sin incurrir en el costo o riesgo de conversiones en tiempo de ejecución u operaciones de conversión boxing, como se muestra aquí:For example, by using a generic type parameter T you can write a single class that other client code can use without incurring the cost or risk of runtime casts or boxing operations, as shown here:

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

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

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

Información general sobre los genéricosGenerics Overview

  • Use tipos genéricos para maximizar la reutilización del código, la seguridad de tipos y el rendimiento.Use generic types to maximize code reuse, type safety, and performance.

  • El uso más común de los genéricos es crear clases de colección.The most common use of generics is to create collection classes.

  • La biblioteca de clases .NET Framework contiene varias clases de colección genéricas nuevas en el espacio de nombres System.Collections.Generic.The .NET Framework class library contains several new generic collection classes in the System.Collections.Generic namespace. Estas se deberían usar siempre que sea posible en lugar de clases como ArrayList en el espacio de nombres System.Collections.These should be used whenever possible instead of classes such as ArrayList in the System.Collections namespace.

  • Puede crear sus propias interfaces, clases, métodos, eventos y delegados genéricos.You can create your own generic interfaces, classes, methods, events and delegates.

  • Puede limitar las clases genéricas para habilitar el acceso a métodos en tipos de datos determinados.Generic classes may be constrained to enable access to methods on particular data types.

  • Puede obtener información sobre los tipos que se usan en un tipo de datos genérico en tiempo de ejecución mediante la reflexión.Information on the types that are used in a generic data type may be obtained at run-time by using reflection.

Para obtener más información:For more information:

Especificación del lenguaje C#C# Language Specification

Para obtener más información, consulte la Especificación del lenguaje C#.For more information, see the C# Language Specification.

Vea tambiénSee Also