унарные операции, принимающие один параметр

В унарных операторах тип операнда должен совпадать с типом класса.
Знак оператора, это например - (унарный минус).
Синтаксис:
public static тип_возврата operator знак_оператора(тип_параметра операнд) {
 //операции
 return значение;
}
знак оператора
название оператора
+ унарный плюс
- унарный минус
! логическое отрицание НЕ
~ поразрядное НЕ
++ инкремент
-- декремент
true истина
false ложь
Для примера возьмем унарный минус.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • class One {
  •  int a;
  •  int b;
  •  /*конструктор изначально присваивает нулевые значения, это понадобится для
  •  переменной-объекта, которая будет создана в методе перегрузки*/
  •  public One() {
  •   a = b = 0;
  •  }
  •  //обычный конструктор
  •  public One(int arg0, int arg1) {
  •   a = arg0;
  •   b = arg1;
  •  }
  •  //перегрузка унарного оператора -
  •  public static One operator - (One obj) {
  •   //создаем переменную-объект, которую будет возвращать этот метод
  •   One Result = new One();
  •   Result.a = -obj.a;
  •   Result.b = -obj.b;
  •   return Result;
  •  }
  •  public int GetValueA() {
  •   return a;
  •  }
  •  public int GetValueB() {
  •   return b;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   One O = new One(10, 20);
  •   Console.WriteLine(-O.GetValueA());
  •   Console.WriteLine(-O.GetValueB());
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
-10
-20