Перевантаження операторів

Тепер ви можете додавати, віднімати, множити, ділити і порівнювати не тільки цифри, ай об'єкти класів (чи структур), треба лише пояснити компілятору, як це робити

Метод буде використовуватися для всіх об'єктів класу, тому він має бути: 

і публічним, і статичним

Тип що повертається, може бути і bool якщо ми порівнюємо два об'єкти

Бінарні оператори вимагають двох параметрів

Унарні оператори - одного

public static тип operator оператор(параметри)

{ }

class Point

{

     public int x;

     public int y;

}

            public static Point operator +(Point c1, Point c2)           //  -,  /,  *

            {

                return new Point { x = c1.x + c2.x, y = c1.y + c2.y };

            }

            public static bool operator >(Point c1, Point c2)  // працює лише в парі з <

            {

                return c1.x > c2.x;

            }

            public static bool operator <(Point c1, Point c2)

            {

                return c1.x < c2.x

            }

            Main

            Point p1 = new Point();

            p1.x = 1;

            p1.y = 1;

            Point p2 = new Point();

            p2.x = 2;

            p2.y = 2;

            Point p3 = p1 + p2;

            Console.WriteLine(p3.x + " " + p3.y);

            Console.WriteLine(p3 < p2);

3 3

False