Junior — Middle
Comment la comparaison d'objets de type référence est-elle effectuée si aucune méthode de comparaison propre n'est implémentée?
sobes.tech IA
Réponse de l'IA
Si en C# aucun méthode de comparaison personnalisé n'est implémenté pour un type de référence (par exemple, si les méthodes Equals et GetHashCode ne sont pas redéfinies), la comparaison des objets se fait par défaut par référence. Cela signifie que deux objets ne sont considérés comme égaux que s'ils pointent vers la même instance en mémoire.
Exemple:
class Person {}
var p1 = new Person();
var p2 = new Person();
bool areEqual = p1.Equals(p2); // false, car ce sont des objets différents
bool areSame = Object.ReferenceEquals(p1, p2); // false
var p3 = p1;
bool areSame2 = Object.ReferenceEquals(p1, p3); // true
Ainsi, sans redéfinition, la comparaison vérifie si les variables font référence au même objet.