Junior — Middle
Kako se vrši poređenje objekata referentnog tipa ako nisu implementirane sopstvene metode poređenja?
sobes.tech АИ
Одговор од АИ
Ако у 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
Стога, без преписа, поређење проверава да ли променљиве указују на исти објекат.