Desidero scrivere una serie di metodi di estensione per semplificare le operazioni matematiche. Per esempio:Come scrivere correttamente i metodi di estensione matematica per int, double, float, ecc.?
Invece di
Math.Pow(2, 5)
Mi piacerebbe essere in grado di scrivere
2.Power(5)
che è (nella mia mente) più chiara.
Il problema è: come gestisco i diversi tipi numerici durante la scrittura dei metodi di estensione? Ho bisogno di scrivere un metodo di estensione per ogni 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 c'è un trucco per permettere una sola opera Metodo di estensione per qualsiasi tipo numerico?
Grazie!
un altro voto per INumeric – Robert
+1 Sì, sono sorpreso che non era parte del framework per cominciare. – Pwninstein
** Avvertenza ** quando si utilizzano tali metodi di estensione: ** '-10.Power (2) == -100' **. Il segno meno viene applicato al risultato di '10.Power (2)'. – HugoRune