Der richtige Weg, um zwei Variablen auszutauschen, ist:
decimal tempDecimal = startAngle;
startAngle = stopAngle;
stopAngle = tempDecimal;
Verwenden Sie mit anderen Worten eine temporäre Variable.
Hier hast du es. Keine cleveren Tricks, keine Betreuer Ihres Codes, die Sie jahrzehntelang verfluchen, keine Einträge in The Daily WTF und kein zu viel Zeitaufwand, um herauszufinden, warum Sie ihn sowieso in einem Vorgang benötigen, da auf der untersten Ebene sogar der Das komplizierteste Sprachmerkmal ist eine Reihe einfacher Operationen.
Nur eine sehr einfache, lesbare, leicht verständliche t = a; a = b; b = t;
Lösung.
Meiner Meinung nach versuchen Entwickler, die versuchen, Tricks zu verwenden, um beispielsweise "Variablen ohne Zeitarbeit zu tauschen" oder "Duffs Gerät", nur zu zeigen, wie klug sie sind (und kläglich scheitern).
Ich vergleiche sie mit denen, die hochkarätige Bücher nur lesen, um auf Partys interessanter zu wirken (im Gegensatz zur Erweiterung Ihres Horizonts).
Lösungen, bei denen Sie addieren und subtrahieren, oder XOR-basierte Lösungen sind weniger lesbar und höchstwahrscheinlich langsamer als eine einfache Lösung mit "temporären Variablen" (Arithmetik / Boolesche Operationen anstelle von einfachen Bewegungen auf Baugruppenebene).
Machen Sie sich und anderen einen Dienst, indem Sie lesbaren Code von guter Qualität schreiben.
Das ist mein Schimpfen. Danke fürs Zuhören :-)
Abgesehen davon bin ich mir ziemlich bewusst, dass dies Ihre spezifische Frage nicht beantwortet (und ich werde mich dafür entschuldigen), aber es gibt viele Präzedenzfälle in SO, in denen Leute gefragt haben, wie man etwas macht, und die richtige Antwort lautet "Nicht tun" Tu es".