¿Cómo escribo correctamente los métodos de extensión matemática para int, double, float, etc.
Quiero escribir una serie de métodos de Extensión para simplificar las operaciones matemáticas. Por ejemplo
En lugar d
Math.Pow(2, 5)
Me gustaría poder escribir
2.Power(5)
que es (en mi opinión) más claro.
El problema es: ¿cómo trato con los diferentes tipos numéricos al escribir métodos de extensión? ¿Debo escribir un método de extensión para cada tipo:
public static double Power(this double number, double power) {
return Math.Pow(number, power);
}
public static double Power(this int number, double power) {
return Math.Pow(number, power);
}
public static double Power(this float number, double power) {
return Math.Pow(number, power);
}
¿O hay algún truco para permitir que un solo Método de Extensión funcione para cualquier tipo numérico?
¡Gracias