Sobes.tech
Junior — Middle

Как се извършва сравняването на обекти от референтен тип, ако не са реализирани собствени методи за сравнение?

sobes.tech AI

Отговор от AI

Ако в C# за референтен тип не са реализирани собствени методи за сравнение (например, ако не са презаписани методите Equals и GetHashCode), сравняването на обекти по подразбиране става по референция. Това означава, че два обекта се считат за равни само ако сочат към един и същи екземпляр в паметта.

Пример:

class Person {}

var p1 = new Person();
var p2 = new Person();

bool areEqual = p1.Equals(p2); // false, защото са различни обекти
bool areSame = Object.ReferenceEquals(p1, p2); // false

var p3 = p1;
bool areSame2 = Object.ReferenceEquals(p1, p3); // true

Така, без презаписване, сравнението проверява дали променливите сочат към един и същи обект.