Operator Overload Example (Unary)

CSharp · Console

/Program.cs

using System;
					
public class Calc
{
  public int num1 { get; set; }
  public int num2 { get; set; }
  public Calc(int n1, int n2)
  {
    num1 = n1;
    num2 = n2;
  }

  // Overload to reverse each number's sign
  // Using the unary minus operator
  public static Calc operator -(Calc calc)
  {
    calc.num1 = -calc.num1;
    calc.num2 = -calc.num2;
    return calc;
  }
}

public class Program
{
  public static void Main()
  {
    Calc calc = new Calc(43, -21);
    calc = -calc;
    Console.WriteLine("Num1 = {0}", calc.num1);
    Console.WriteLine("Num2 = {0}", calc.num2);
  }
}
;