Generics (C# Programming Guide)

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 class library contém várias classes de coleção genérica de novo no System.Collections.Generic namespace. Esses devem ser usados sempre que possível, em vez de classes como ArrayList na System.Collections namespace.

  • 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 C# Language Specification.

Consulte também

Referência

System.Collections.Generic

Tipos (guia de programação de C#)

<typeparam> (C# Programming Guide)

<typeparamref> (C# Programming Guide)

Conceitos

C# Programming Guide