Como eu escrevo corretamente os métodos de extensão Math para int, double, float etc
Quero escrever uma série de métodos de extensão para simplificar as operações matemáticas. Por exemplo
Ao invés d
Math.Pow(2, 5)
Eu gostaria de poder escrever
2.Power(5)
que é (em minha mente) mais claro.
O problema é: como faço para lidar com os diferentes tipos numéricos ao escrever métodos de extensão? Preciso escrever um método de extensão 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);
}
xiste algum truque para permitir que um único Método de Extensão funcione para qualquer tipo numéric
Obrigado