Смена знака объекта в C#
- перед числом меняет знак без второго операнда.
Для своего типа ту же роль дает унарный оператор минус:
один параметр типа класса, возвращается новый объект
с противоположным смыслом полей.
Исходный экземпляр не меняется - создается другой.
Запишем класс Balance с полем cents:
class Balance {
public int cents = 0;
public static Balance operator -(Balance source) {
Balance result = new Balance();
result.cents = -source.cents;
return result;
}
}
Пример смены знака:
Balance credit = new Balance();
credit.cents = 250;
Balance debt = -credit;
Console.WriteLine(debt.cents);
Сделайте класс Debt с полем cents.
Добавьте получение значения с противоположным знаком.
Для долга 100 выведите противоположное число.
Создайте Debt с cents равным -40,
получите противоположный знак и выведите cents результата.
Сделайте класс Weight с полем grams.
Из 500 и 120 получите разность, затем
значение с противоположным знаком и выведите grams.