Junior — Middle
Wie erfolgt der Vergleich von Referenztypen, wenn keine eigenen Vergleichsmethoden implementiert sind?
sobes.tech KI
Antwort von AI
Wenn in C# für Referenztypen keine eigenen Vergleichsmethoden implementiert sind (zum Beispiel, wenn die Methoden Equals und GetHashCode nicht überschrieben wurden), erfolgt der Vergleich der Objekte standardmäßig anhand der Referenz. Das bedeutet, dass zwei Objekte nur dann als gleich gelten, wenn sie auf dasselbe Exemplar im Speicher verweisen.
Beispiel:
class Person {}
var p1 = new Person();
var p2 = new Person();
bool areEqual = p1.Equals(p2); // false, da unterschiedliche Objekte
bool areSame = Object.ReferenceEquals(p1, p2); // false
var p3 = p1;
bool areSame2 = Object.ReferenceEquals(p1, p3); // true
Ohne Überschreibung prüft der Vergleich also, ob die Variablen auf dasselbe Objekt verweisen.