C# · Intermediário · Inglês · Técnico
generic constraint
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); // 0Exemplos
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