Quiero escribir un método C# que pueda aceptar cualquier número. Algo así como:C# clase base numérica
public static T Sum(T a, T b) where T : number { // (not real code)
return a + b;
}
Pero no veo un "número" clase base en C#, como existe en la mayoría de los otros idiomas que he usado. Los tipos de valores numéricos son IComparable, IFormattable, IConvertible, IComparable e IEquatable, pero nada que parezca tener capacidades aritméticas. Son todas estructuras, sin aparente superclase común, aparte del objeto. (Perdóneme si estoy confundiendo el significado aquí, ya que no estoy muy familiarizado con las estructuras de C# y precisamente todas las formas en que son o no como las clases).
Me falta algo, o no es posible escribir un método en C# que haga "a + b" sin declarar exactamente lo que a y b son en el contexto del "+"?
(Respondió para comentar; para aclarar: ** no hay ** fundición ni sobrecarga) –
(con respecto a su otro comentario sobre 'IEnumerable.Sum'; tenga en cuenta que MiscUtil proporciona versiones genéricas de' Suma', 'Promedio' , etc. - usando 'Operator', etc.) –