Je veux écrire une série de méthodes d'extension pour simplifier les opérations mathématiques. Par exemple:Comment écrire correctement les méthodes d'extension Math pour int, double, float, etc.?
Au lieu de
Math.Pow(2, 5)
Je voudrais pouvoir écrire
2.Power(5)
qui est (dans mon esprit) plus clair.
Le problème est: comment traiter les différents types numériques lors de l'écriture de méthodes d'extension? Ai-je besoin d'écrire une méthode d'extension pour chaque 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);
}
Ou est-il une astuce pour permettre un travail Méthode d'extension pour tout type numérique?
Merci!
un autre vote pour INumeric – Robert
+1 Oui, je suis surpris que cela ne faisait pas partie du cadre pour commencer. – Pwninstein
** Avertissement ** lors de l'utilisation de ces méthodes d'extension: ** '-10.Power (2) == -100' **. Le signe moins est appliqué au résultat de '10.Power (2)'. – HugoRune