Junior — Middle
U kojim slučajevima se vrši poređenje referentnih tipova podataka?
sobes.tech АИ
Одговор од АИ
U C#-u, poređenje referentnih tipova vrši se u sledećim slučajevima:
-
Poređenje referenci (ReferenceEquals) — proverava da li dve promenljive ukazuju na isti objekat u memoriji.
-
Prepisivanje metode Equals() — za poređenje sadržaja objekata, a ne njihovih adresa.
-
Operatori == i != — po default-u, za referentne tipove, porede reference, ali mogu biti preopterećeni za poređenje sadržaja.
Primer:
class Person {
public string Name;
public override bool Equals(object obj) {
if (obj is Person other) {
return this.Name == other.Name;
}
return false;
}
public override int GetHashCode() => Name.GetHashCode();
}
var p1 = new Person { Name = "Alice" };
var p2 = new Person { Name = "Alice" };
bool areSameReference = Object.ReferenceEquals(p1, p2); // false
bool areEqual = p1.Equals(p2); // true
Dakle, poređenje referentnih tipova se vrši ili da bi se proverilo da li promenljive ukazuju na isti objekat, ili za poređenje sadržaja objekata ako je metoda Equals prepisana.