Перегрузка метода Equals() - C#
Формулировка задачи:
Стоит ли перегружать вообще, если можно сравнивать используя метод класса object:
Если использовать это:
То и перегружать буду так:
/// <summary>Определяет время в часах, минутах и секундах</summary>
[Serializable()]
public class Time
{
/// <summary>Часы</summary>
public byte Hours { get; set; }
/// <summary>Минуты</summary>
public byte Minutes { get; set; }
/// <summary>Секунды</summary>
public byte Seconds { get; set; }
public Time()
{
}
public Time(byte Hours, byte Minutes)
: this(Hours, Minutes, 0)
{
}
public Time(byte Hours, byte Minutes, byte Seconds)
{
this.Hours = Hours;
this.Minutes = Minutes;
this.Seconds = Seconds;
}
public static Boolean operator ==(Time timeOne, Time timeTwo)
{
return object.Equals(timeOne, timeTwo);
}
public static Boolean operator !=(Time timeOne, Time timeTwo)
{
return !object.Equals(timeOne, timeTwo);
}
public override bool Equals(object obj) //Перегрузка метода
{
Time time = (Time)obj;
return (Hours == time.Hours && Minutes == time.Minutes && Seconds == time.Seconds);
}
} public override bool Equals(object obj) //Перегрузка метода
{
Time time = (Time)obj;
return (Hours == time.Hours && Minutes == time.Minutes && Seconds == time.Seconds);
} public static Boolean operator !=(Time timeOne, Time timeTwo)
{
return !timeOne.Equals(timeTwo);
}Решение задачи: «Перегрузка метода Equals()»
textual
Листинг программы
class Time : IEquatable<Time>
{
public bool Equals(Time other)
{
return false;
}
}