Soustraction de Point
Le
Bismark Prods
Bonjour,
Connaissez-vous un moyen moins couteux de faire une soustraction de
coordonnées que celle que j'ai actuellement :
Point pt1 = new Point(10,10);
Point pt2 = new Point(32,22);
Point pt3 = new Point();
pt3 = pt2 - (Size)pt1; -> sans boxer ?
MessageBox.Show("PT3 : " + pt3.ToString());
Merci
Bismark
Connaissez-vous un moyen moins couteux de faire une soustraction de
coordonnées que celle que j'ai actuellement :
Point pt1 = new Point(10,10);
Point pt2 = new Point(32,22);
Point pt3 = new Point();
pt3 = pt2 - (Size)pt1; -> sans boxer ?
MessageBox.Show("PT3 : " + pt3.ToString());
Merci
Bismark

Poser une question


C'est inutile d'allouer un nouveau Point alors qu'il ne sera pas utilisé.
Il n'y a pas de boxing ici, seulement un cast. Le boxing c'est la création
d'un objet sur le tas pour référencer un type valeur.
Vous pouvez faire :
Point pt3 = new Point(pt1.X - pt2.X, pt1.Y - pt2.Y);
--
Zazar
Voir doc : utiliser la soustraction de coordonnée
------------ extrait de la doc ----------
".NET Framework Class Library
Point Subtraction Operator
Translates a Point by the negative of a given Size.
[C#]
public static Point operator -(
Point pt,
Size sz
);"
---------------------------------------
ex :
Point pos = new Point(100,100);
pos = pos - new Size(20,80);
(je n'ai pas testé : pos -= new Size(20,80);)
Dites-moi si ça fonctionne.
Philippe Destrumel
Bismark Prods
l'allocation 'Point pt3 = new Point()'
En effet "(Size)pt1" va construire un objet temporaire => perte de temps
-------- extrait doc -----------------
Point to Size Conversion
CREATES a Size with the coordinates of the specified Point.
-------------------------