Sobes.tech
Junior — Middle

In welke gevallen wordt de vergelijking van referentietypen uitgevoerd?

sobes.tech AI

Antwoord van AI

In C# wordt de vergelijking van referentietypen uitgevoerd in de volgende gevallen:

  • Referentievergelijking (ReferenceEquals) — controleert of twee variabelen naar hetzelfde object in het geheugen wijzen.

  • Overriding van Equals() — om de inhoud van objecten te vergelijken, niet hun adressen.

  • Operators == en != — vergelijken standaard referenties voor referentietypen, maar kunnen worden overschreven voor inhoudsvergelijking.

Voorbeeld:

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

Dus, de vergelijking van referentietypen wordt gedaan om te controleren of variabelen naar hetzelfde object verwijzen, of om de inhoud van de objecten te vergelijken als de Equals-methode is overschreven.