2075 / C# / Класи / Перевантаження операторів
Тепер ви можете додавати, віднімати, множити, ділити і порівнювати не тільки цифри, ай об'єкти класів (чи структур), треба лише пояснити компілятору, як це робити
Метод буде використовуватися для всіх об'єктів класу, тому він має бути:
і публічним, і статичним
Тип що повертається, може бути і 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
False