Junior — Middle
Como é que a comparação de objetos de tipo referência é realizada se não forem implementados métodos de comparação próprios?
sobes.tech IA
Resposta da IA
Se em C# não forem implementados métodos de comparação próprios para tipos de referência (por exemplo, se os métodos Equals e GetHashCode não forem sobrescritos), a comparação de objetos ocorre por padrão por referência. Isso significa que dois objetos são considerados iguais apenas se apontarem para a mesma instância na memória.
Exemplo:
class Person {}
var p1 = new Person();
var p2 = new Person();
bool areEqual = p1.Equals(p2); // false, pois são objetos diferentes
bool areSame = Object.ReferenceEquals(p1, p2); // false
var p3 = p1;
bool areSame2 = Object.ReferenceEquals(p1, p3); // true
Portanto, sem sobrescrita, a comparação verifica se as variáveis referenciam o mesmo objeto.