Основы объектно-ориентированного программирования на языке 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