Sobes.tech
Junior — Middle

¿Cómo se realiza la comparación de objetos de tipo referencia si no se han implementado métodos de comparación propios?

sobes.tech AI

Respuesta de la IA

Si en C# no se implementan métodos de comparación propios para tipos de referencia (por ejemplo, si no se sobrescriben los métodos Equals y GetHashCode), la comparación de objetos se realiza por defecto por referencia. Esto significa que dos objetos se consideran iguales solo si apuntan al mismo ejemplar en la memoria.

Ejemplo:

class Person {}

var p1 = new Person();
var p2 = new Person();

bool areEqual = p1.Equals(p2); // false, ya que son objetos diferentes
bool areSame = Object.ReferenceEquals(p1, p2); // false

var p3 = p1;
bool areSame2 = Object.ReferenceEquals(p1, p3); // true

Por lo tanto, sin sobrescribir, la comparación verifica si las variables hacen referencia al mismo objeto.