Override Equals and GetHashCode
- Override Equals and GetHashCode
Quando for sobrescrever um dos dois, deve se sobrescrever o outro também
public class ImaginaryNumber : IEquatable<ImaginaryNumber>
{
public double RealNumber { get; set; }
public double ImaginaryUnit { get; set; }
public override bool Equals(object obj)
{
return Equals(obj as ImaginaryNumber);
}
public bool Equals(ImaginaryNumber other)
{
//MESMAS PROPRIEDADES USADAS AQUI DEVEM SER USADAS NO GETHASHCHODE
return other != null &&
RealNumber == other.RealNumber &&
ImaginaryUnit == other.ImaginaryUnit;
}
public override int GetHashCode()
{
return HashCode.Combine(RealNumber, ImaginaryUnit);
}
}