Junior — Middle
Hoe wordt de vergelijking van referentietype-objecten uitgevoerd als er geen eigen vergelijkingsmethoden zijn geïmplementeerd?
sobes.tech AI
Antwoord van AI
Als in C# voor referentietypen geen eigen vergelijkingsmethoden zijn geïmplementeerd (bijvoorbeeld, als de methoden Equals en GetHashCode niet zijn overschreven), wordt de vergelijking van objecten standaard op basis van referentie uitgevoerd. Dit betekent dat twee objecten alleen als gelijk worden beschouwd als ze naar hetzelfde exemplaar in het geheugen verwijzen.
Voorbeeld:
class Person {}
var p1 = new Person();
var p2 = new Person();
bool areEqual = p1.Equals(p2); // false, omdat het verschillende objecten zijn
bool areSame = Object.ReferenceEquals(p1, p2); // false
var p3 = p1;
bool areSame2 = Object.ReferenceEquals(p1, p3); // true
Dus, zonder overschrijving, controleert de vergelijking of de variabelen naar hetzelfde object verwijzen.