Genéricos (Guia de Programação em C#)Generics (C# Programming Guide)

Genéricos foram adicionados à versão 2.0 da linguagem C# e o common language runtime (CLR).Generics were added to version 2.0 of the C# language and the common language runtime (CLR). Genéricos apresentam ao .NET Framework o conceito de parâmetros de tipo, que possibilitam a criação de classes e métodos que adiam a especificação de um ou mais tipos até que a classe ou método seja declarado e instanciado pelo código do cliente.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 exemplo, ao usar um parâmetro de tipo genérico T, você pode escrever uma única classe que outro código de cliente pode usar sem incorrer o custo ou corre o risco de conversões de tempo de execução ou operações de conversão boxing, conforme mostrado aqui: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());
    }
}

Visão geral de genéricosGenerics Overview

  • Use tipos genéricos para maximizar a reutilização de código, o desempenho e a segurança de tipo.Use generic types to maximize code reuse, type safety, and performance.

  • O uso mais comum de genéricos é para criar classes de coleção.The most common use of generics is to create collection classes.

  • A biblioteca de classes do .NET Framework contém várias classes de coleção de genéricos novos no namespace System.Collections.Generic.The .NET Framework class library contains several new generic collection classes in the System.Collections.Generic namespace. Eles devem ser usados sempre que possível, em vez de classes como ArrayList no namespace System.Collections.These should be used whenever possible instead of classes such as ArrayList in the System.Collections namespace.

  • Você pode criar suas próprias interfaces genéricas, classes, métodos, eventos e delegados.You can create your own generic interfaces, classes, methods, events and delegates.

  • Classes genéricas podem ser restringidas para habilitar o acesso aos métodos em tipos de dados específicos.Generic classes may be constrained to enable access to methods on particular data types.

  • Informações sobre os tipos que são usados em um tipo de dados genérico podem ser obtidas no tempo de execução por meio de reflexão.Information on the types that are used in a generic data type may be obtained at run-time by using reflection.

Para saber mais:For more information:

Especificação da Linguagem C#C# Language Specification

Para obter mais informações, consulte a Especificação da linguagem C#.For more information, see the C# Language Specification.

Consulte tambémSee Also