Junior — Middle
Já teve situações em que precisou de reescrever o método equals() nas suas classes?
sobes.tech IA
Resposta da IA
Sim, muitas vezes é necessário substituir o método Equals() em C# quando se deseja comparar objetos pelo valor, e não pela referência. Por exemplo, se tiver uma classe Person com os campos Name e Age, e quiser que dois objetos sejam considerados iguais se esses campos coincidirem, deve substituir Equals() e GetHashCode().
Exemplo:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override bool Equals(object obj)
{
if (obj is Person other)
{
return Name == other.Name && Age == other.Age;
}
return false;
}
public override int GetHashCode()
{
return HashCode.Combine(Name, Age);
}
}
Isto é importante para o funcionamento correto de coleções, por exemplo, HashSet<Person> ou ao comparar objetos em testes.