Способ вправо для замены двух переменных:
decimal tempDecimal = startAngle;
startAngle = stopAngle;
stopAngle = tempDecimal;
Другими словами, использовать временную переменную.
Вот, пожалуйста. Никаких хитрых трюков, никаких сопровождающих вашего кода, проклинающих вас на протяжении десятилетий, никаких записей в Daily WTF , и не тратите слишком много времени, пытаясь выяснить, зачем вам это нужно в одной операции, поскольку самый низкий уровень, даже самая сложная языковая функция - это серия простых операций.
Просто очень простое, читаемое, простое для понимания решение t = a; a = b; b = t;
.
По моему мнению, разработчики, которые пытаются использовать уловки, например, для "подмены переменных без использования temp" или "устройства Даффа", просто пытаются показать, насколько они умны (и терпят неудачу).
Я сравниваю их с теми, кто читает высокопоставленные книги исключительно для того, чтобы казаться более интересными на вечеринках (в отличие от расширения вашего кругозора).
Решения, в которых вы добавляете и вычитаете, или решения на основе XOR, менее читабельны и, скорее всего, медленнее, чем простое решение «временная переменная» (арифметические / логические операции вместо простых перемещений на уровне сборки).
Предоставьте себе и другим услуги, написав качественный читаемый код.
Это моя напыщенная речь. Спасибо за прослушивание: -)
Кроме того, я прекрасно знаю, что это не отвечает на ваш конкретный вопрос (и я извинюсь за это), но есть много прецедентов на SO, когда люди спрашивают, как что-то сделать, и правильный ответ " Не делай этого ".