Sobes.tech
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.