[C#] Etendre la classe Math

Ah mais oui mais non, Math est statique, donc visiblement pas extendable. Ceci:

public static class ExtendedMath : Math

Ne marche visiblement pas. Et c’est bien dommage. Parce que j’utilise beaucoup d’opération arithmétiques en float par exemple, ceci fait que mon code est blindé de (float), ce qui ne le rend pas très lisible. De plus j’aurais bien quelques nouvelles fonctions à implémenter genre LinearInterpolation(float, float, float). ou alors CubicInterpolation(float, float, float) (bon je vais pas vous faire une liste de toutes les fonctions alacon™ que je cherche à implémenter sinon on va pas finir). Et j’aurais bien pouvoir aimé étendre la classe Math, comme ca j’aurais pas eu besoin de me demander si la fonction se cache dans Math ou ExtendedMath.

Ps: c’est tout pourri C#, quand on renvoie une struct dans une propriété, c’est une copie qui est renvoyée. C’est pas super intuitif ce comportement, j’aurais pu économiser quelques heures de grattage de tête /troll :stuck_out_tongue:

Tu peux quand meme faire une classe style toolbox (donc composéede méthodes statiques aussi) qui surcharge les méthodes de Math avec tes floats et qui ne dérive pas mais se compose ou s’agrege avec Math.

Pour les classes de Math c’est normal :stuck_out_tongue: faut pas. En plus si tu bosses sur des floats et pas des doubles vaut mieux pas utiliser des methodes qui prennent des doubles.

Hehe cela dit moi je trouve que c’est intuitif. Pas trivial complet, mais completement logique. Vu ou se fait l’allocation d’une variable de type struct, et qu’elles sont toujours passees par valeur, c’est normal qu’il soit oblige de faire une copie pour le renvoyer en dehors du contexte local de ta fonction/classe/whatever, sinon la memoire ou vit la struct pourrait disparaitre en fourbe.

Oui mais quand tu n’as pas écrit la classe (Vector3 en l’occurence) toi même, c’est perturbant :P.

[quote]Cil’ date=’ 9 Jun 2006, 16:31’ post=‹ 478753 ›]
Ps: c’est tout pourri C#, quand on renvoie une struct dans une propriété, c’est une copie qui est renvoyée. C’est pas super intuitif ce comportement, j’aurais pu économiser quelques heures de grattage de tête /troll :P[/quote]
Bah pourtant c’est l’une des premieres choses que tu lis lorsque t’apprends la différence entre les value-type et les reference-type?
(enfin en tous cas, c’était dans mon bouquin d’intro à .NET/C#…) T’as fait comme tous les ingénieurs et t’as jamais lu le début du mode d’emploi toi :stuck_out_tongue:

[quote=« lordabdul, post:5, topic: 29396 »]Bah pourtant c’est l’une des premieres choses que tu lis lorsque t’apprends la différence entre les value-type et les reference-type?
(enfin en tous cas, c’était dans mon bouquin d’intro à .NET/C#…) T’as fait comme tous les ingénieurs et t’as jamais lu le début du mode d’emploi toi :P[/quote]

Hors sujet : Moi j’dis que la nldd serait vachement mieux avec un RSS :stuck_out_tongue:

Bah disons que je suis autodidacte en ce qui concerne le .Net. J’ai pas lu de bouquins dessus, j’apprends tout sur le tas. Je fais pas de .Net au boulot, j’en fais juste pour le plaisir le soir, en rentrant, entre deux missions courier à EvE.

Avec Eve, tu peux meme le faire pendant.

Euh oui, je me suis mal exprimé; le entre deux missions courrier, ca voulait dire… entre deux validation de missions courrier (pendant le transport, quoi :P).