ExpertiDict

C# · Essencial · Inglês · Técnico

generics

/dʒəˈnɛrɪks/substantivo

Recurso que parametriza tipos e métodos por outros tipos, como List<T>, mantendo checagem estática e evitando casts e boxing; o CLR preserva os genéricos em tempo de execução.

Onde usar

Aparece ao criar repositórios, resultados e utilitários reutilizáveis. Diferente do Java, o .NET mantém os tipos genéricos em runtime, então typeof(List<int>) é distinto de typeof(List<string>).

Em código

T Maior<T>(T a, T b)
  where T : IComparable<T>
  => a.CompareTo(b) >= 0 ? a : b;
Console.WriteLine(Maior(3, 7));       // 7
Console.WriteLine(Maior("a", "b"));   // b

Exemplos

Make the method generic so it works for any type.

Torne o método genérico para funcionar com qualquer tipo.

Generics avoid boxing for value types.

Generics evitam boxing em value types.

Cuidado

Não confunda com o type erasure do Java: no .NET, List<int> guarda ints diretamente, sem boxing.

Sinônimos

tipos genéricos

Veja também

Todos os termos de C#