Как перегрузить методы Equals() и GetHashCode(), для сравнения свойств объектов? - C#
Формулировка задачи:
Есть два объекта класса Квадрат.Необходимо сравнить их по площади заданной свойством. Для этого необходимо перегрузить операторы == и !=. Как теперь перегрузить Equals() и GetHashCode() необходимые для перегрузки этих операторов?
Решение задачи: «Как перегрузить методы Equals() и GetHashCode(), для сравнения свойств объектов?»
textual
Листинг программы
protected bool Equals(Square other)
{
return Width.Equals(other.Width) && Heght.Equals(other.Heght);
}
public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
if (obj.GetType() != this.GetType()) return false;
return Equals((Square) obj);
}
public override int GetHashCode()
{
unchecked
{
return (Width.GetHashCode()*397) ^ Heght.GetHashCode();
}
}