Wie man den + - operator arbeiten, während zwei zusätzliche Punkte zu einander?
Gibt es eine Möglichkeit, um die +
Betreiber arbeiten für das Point-Objekt?
Nehmen Sie zum Beispiel dieses kleine snippet:
this.cm1.Show((MouseEventArgs)e.Location+this.i_rendered.Location);
Sehen Sie, ich versuche, um zwei Punkte zu einander. Es funktioniert einfach nicht (was zu erwarten war). Ich hätte gerne diese arbeiten.
Irgendwelche Ideen?
- Was
Point
Objekt redest du? Genau? In welchem namespace? Es ist Ihre eigene Art? Was erwarten Sie das Ergebnis der addition werden? - Haben Sie versucht, diese.cm1.Zeigen Sie(((MouseEventArgs e).Lage+diese.i_rendered.Lage);
- System.Zeichnung.Punkt
- Funktioniert nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es nicht passieren wird wie du es erwartest. Den nur überlastung, die
Point
Struktur bietet für die+
(Ergänzung) operator ist eine, die übersetzt die Koordinaten desPunkt
durchSize
.Gibt es keine Möglichkeit, fügen Sie zwei
Point
Strukturen zusammen, und ich bin mir auch nicht sicher, was das bedeuten würde.Nicht zu viel Zeit zu verschwenden es herauszufinden, entweder, wenn man bedenkt, dass Sie können nicht schreiben-Erweiterung-Methoden, die Operatoren überladen.
Glücklicherweise in einer kompilierten Sprache, es gibt keine Strafe für das aufteilen von code in mehrere Zeilen. So können Sie re-schreiben Sie Ihren code wie folgt:
Alternativ können Sie die
Offset
Methode, aber ich bin nicht davon überzeugt, dass erhöht die Lesbarkeit.Size
?Ich Lesen Sie die Dokumentation für
System.Drawing.Point
(verlinkt in Cody, Gray ' s Antwort), und es hat eine Instanz-MethodeOffset
. Diese Methode mutiert die aktuellePoint
(die Designer entschieden, umPoint
eine veränderliche Struktur!).Hier also ein Beispiel:
In der gleichen doc, ich sehe auch eine explizite Konvertierung von
Point
zuSize
. Also, versuchen Sie dies: