public static void Main()
MyNumber a = new MyNumber(5);
MyNumber b = new MyNumber(5);
MyNumber resultAdd = a + b;
Console.WriteLine("Binary Operator (+): " + resultAdd);
Console.WriteLine("Assignment Operator (+=): " + a);
MyNumber resultNegation = -a;
Console.WriteLine("Unary Operator (-): " + resultNegation);
bool isGreaterThan = (a > b);
Console.WriteLine("Comparison Operator (>): " + isGreaterThan);
bool isLessThan = (a < b);
Console.WriteLine("Comparison Operator (<): " + isLessThan);
public MyNumber(int value)
public static MyNumber operator +(MyNumber a, MyNumber b)
return new MyNumber(a.value + b.value);
public static MyNumber operator +(MyNumber a, int b)
return new MyNumber(a.value + b);
public static MyNumber operator -(MyNumber a)
return new MyNumber(-a.value);
public static bool operator ==(MyNumber a, MyNumber b)
public static bool operator !=(MyNumber a, MyNumber b)
public static bool operator >(MyNumber a, MyNumber b)
return a.value > b.value;
public static bool operator <(MyNumber a, MyNumber b)
return a.value < b.value;
public static implicit operator int(MyNumber a)
public static implicit operator MyNumber(int value)
return new MyNumber(value);
public override string ToString()
public override bool Equals(object obj)
MyNumber other = (MyNumber)obj;
return this.value == other.value;
public override int GetHashCode()
return value.GetHashCode();