C# · Avançado · Inglês · Técnico
generic math
Conjunto de interfaces numéricas, como INumber<T> e IAdditionOperators, baseado em static abstract members. Permite escrever algoritmos genéricos que usam +, * e outros operadores.
Onde usar
Aparece ao escrever uma Somar<T> que funcione para int, double e decimal sem duplicar código. Desde o .NET 7, os tipos numéricos internos já implementam essas interfaces.
Em código
using System.Numerics;
T Somar<T>(IEnumerable<T> xs)
where T : INumber<T>
{
var t = T.Zero;
foreach (var x in xs) t += x;
return t;
}Exemplos
Generic math lets one method work for int and double.
Generic math permite um só método servir para int e double.
It relies on static abstract members.
Ele depende de membros static abstract.
Cuidado
Não restrinja além do necessário: exigir INumber<T> quando só precisa de IAdditionOperators afasta tipos válidos.
Sinônimos
matemática genérica