Как правильно написать методы расширения Math для междунар, двойные, с плавающей точкой, и т.д.?
Я хочу написать серию методов расширения для упрощения математических операций. Например:
Вместо
Math.Pow(2, 5)
Я хотел бы, чтобы иметь возможность написать
2.Power(5)
что (на мой взгляд) яснее.
Проблема в том, как я могу иметь дело с различными числовыми типами при написании расширения методов? Нужно ли писать метод расширения для каждого типа:
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);
}
Или есть уловка, чтобы позволить одной работы метода расширения для любого числового типа?
Спасибо!