Основы объектно-ориентированного программирования на языке C# book | Page 148

7 Класи Перевантажимо оператори « > » i « < » i реалiзуємо методи Equals() i Gethashcode() : public static bool operator > (Rational x, Rational y) { if(x.a * y.b > x.b * y.a) return true; else return false; } public static bool operator < (Rational x, Rational y) { if(x.a * y.b < x.b * y.a) return true; else return false; } public override bool Equals(object o) { if(o.Gettype() != Gettype()) return false; Rational t = (Rational) o; return (a == t.a && b == t.b); } public override int Gethashcode() { return 0; } Остаточно програма має такий вигляд: using System; namespace OperandOver { public class Rational { int a; // Чисельник int b; // Знаменник public Rational() { a = 0; b = 1; } public Rational(int a0, int b0) { a = a0; b = b0; if (b == 0) { b = 1; Console.WriteLine("Неприпустиме значення знаменника:{0}. Замiняємо на 1", b0); } else if (b < 0) { a = -a; b = -b; } 148