How to write Math extension methods for int, double, float, etc.?

I want to write a number of extension methods to simplify mathematical operations. For example:

Instead

Math.Pow(2, 5)

I would like to write

2.Power(5) 

which (in my opinion) is clear.

The problem is this: how do I handle different numeric types when writing extension methods? I need to write an extension method for each type:

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);
}

Or is there a trick that allows one extension method to work for any number type?

Thanks!

+5
source share
4 answers

, , . - generics, , - .

+2

Decimal Double, :

0

, , . , , , .

public static double Power(this object number, double power) 
{
    return Math.Pow((double) number, power);
}
0

All Articles