ExpertiDict

C# · Intermediário · Inglês · Técnico

generic constraint

/dʒəˈnɛrɪk kənˈstreɪnt/substantivo

Cláusula where que restringe os tipos aceitos por um parâmetro genérico, como where T : class, struct, new() ou uma interface, liberando operações no código.

Onde usar

Aparece quando você precisa chamar um membro de T ou criar T com new(). Em code review, verifique se o constraint é o mínimo necessário, pois restrições demais prejudicam a reutilização.

Em código

T Criar<T>()
  where T : new()
  => new T();
var lista = Criar<List<int>>();
Console.WriteLine(lista.Count);   // 0

Exemplos

Add a where T : new() constraint so we can create it.

Adicione um constraint where T : new() para podermos criá-lo.

The generic constraint requires T to implement the interface.

O generic constraint exige que T implemente a interface.

Cuidado

Não existe constraint para operadores como +; para isso use static abstract members, como INumber<T>.

Sinônimos

restrição genérica

Veja também

Todos os termos de C#