2010-10-19 5 views
1

Ma méthode d'extension très souvent utilisé estQuels sont quelques exemples utiles de méthodes d'extension traitant des mathématiques et des calculs?

public static double Pi(double this x) { return Math.PI*x; } 

afin d'avoir accès à 2.0.Pi() ou 0.5.Pi() .. etc

Quels sont d'autres exemples de mathématiques liées méthodes d'extension les gens utilisent souvent?

PS. Juste curieux.

+2

http://extensionmethod.net/ –

+0

Peut-être devriez-vous essayer Ruby ou une autre langue. – leppie

+3

@leppie Pourquoi? Ou êtes-vous juste en train de trolliner? – Dismissile

Répondre

0

Afin d'obtenir le jus de créativité, je proposerai quelques exemples ...

public static double Raise(double this x, double exponent) 
{ 
    return Math.Pow(x, exponent); 
} 

public static bool NearZero(double this x, double tolerance) 
{ 
    return Math.Abs(x) <= tolerance; 
} 

public static double Cap(double this x, double threshold) 
{ 
    return Math.Abs(x)<threshold ? x : threshold*Math.Sign(x); 
} 

public static double SignOf(double this x, double sense) 
{ 
    return Math.Sign(sense)*Math.Abs(x); 
} 

public static double ToRadians(double this x) { return Math.PI*x/180; } 
public static double ToDegrees(double this x) { return 180*x/Math.PI; } 

PS. Merci @Aaron d'avoir posté extensionmethods.net. Malheureusement, ils ont peu en termes d'écritures liées aux mathématiques.

3
public static double Squared(double this x) { return x*x; } 
+0

Très bon exemple compte tenu des limitations de la syntaxe C# pour carré, cube ou augmenter une puissance. – ja72

+0

Ma première pensée a été pourquoi ne pas simplement écrire x^2 dans le code, plutôt que x.Squared()? Moins de caractères, et sans doute tout aussi clair. Mais je peux voir cela utile si, disons, une fonction renvoie un double ... circle.Radius.Squared(). PI(). Intéressant –

Questions connexes