Назад к вопросам
Junior — Middle
71
Каким образом осуществляется сравнение двух классов в объектно-ориентированном программировании?
Компании, где спрашивали
Swiftfactory
Ответ от нейросети
sobes.tech AI
В объектно-ориентированном программировании сравнение двух классов обычно означает сравнение их экземпляров (объектов). В C# для этого можно переопределить методы Equals и GetHashCode, а также реализовать интерфейс IEquatable<T>.
Сравнение может быть:
- Сравнение по ссылке — проверяется, указывают ли две переменные на один и тот же объект.
- Сравнение по значению — проверяется, равны ли внутренние данные объектов.
Пример переопределения Equals и GetHashCode:
class Person : IEquatable<Person>
{
public string Name { get; set; }
public int Age { get; set; }
public override bool Equals(object obj) => Equals(obj as Person);
public bool Equals(Person other)
{
if (other == null) return false;
return Name == other.Name && Age == other.Age;
}
public override int GetHashCode() => HashCode.Combine(Name, Age);
}
Также можно переопределить операторы == и != для удобства.