Junior — Middle
Cum se realizează compararea obiectelor de tip referință dacă nu sunt implementate metode proprii de comparare?
sobes.tech AI
Răspuns de la AI
Dacă în C# pentru tipurile de referință nu sunt implementate metode proprii de comparare (de exemplu, dacă metodele Equals și GetHashCode nu sunt suprascrise), compararea obiectelor se face implicit după referință. Aceasta înseamnă că două obiecte sunt considerate egale doar dacă indică același exemplar în memorie.
Exemplu:
class Person {}
var p1 = new Person();
var p2 = new Person();
bool areEqual = p1.Equals(p2); // false, deoarece sunt obiecte diferite
bool areSame = Object.ReferenceEquals(p1, p2); // false
var p3 = p1;
bool areSame2 = Object.ReferenceEquals(p1, p3); // true
Prin urmare, fără suprascriere, comparația verifică dacă variabilele fac referire la același obiect.