Sobes.tech
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.