Compartilhar via


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

Os Generics foram adicionados à versão 2.0 da linguagem C# e o Common Language Runtime (CLR). Generics introduzem no .NET Framework o conceito de parâmetros de tipos, que tornam possíveis a estruturação de classes e métodos que adiam a especificação de um ou mais tipos até que a classe ou método seja declarada e instanciada pelo código do cliente. Por exemplo, usando um parâmetro de tipo genérico T você pode escrever uma única classe que outro código do cliente poderá usar sem aumentar o custo ou risco de conversões (cast) em tempo de execução (runtime) ou operações de boxing, conforme mostrado abaixo:

// 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>();
    }
}

Visão geral generics

  • Usar tipos genéricos para maximizar reutilização de código, segurança de tipo, e desempenho.

  • O uso mais comum de generics é para criar classes coleção.

  • A.NET Framework contém várias classes de coleção genérica de novo na System.Collections.Generic espaço para nome. Esses devem ser usados sempre que possível, em vez de classes como ArrayList na System.Collections espaço para nome.

  • Você pode criar suas próprias interfaces genéricas, classes, métodos, eventos e delegates.

  • Classes genéricas podem ser utilizadas para permitir acesso aos métodos usando tipos de dados específicos.

  • Informações sobre os tipos que são usados em um tipo de dados genéricos podem ser obtidas em tempo de execução usando reflexão.

Seções relacionadas

Para obter mais informações:

Especificação da linguagem C#

Para obter mais informações, consulte o Especificação da linguagem C#.

Consulte também

Referência

System.Collections.Generic

Tipos (Guia de Programação em C#)

<typeparam> (Guia de Programação em C#)

<typeparamref> (Guia de Programação em C#)

Conceitos

Guia de Programação em C#