Обычно я не реализую (= оператор или Equals () для моих классов, например, Customer).
Вы определенно не должны переопределять оператор =, потому что разработчики, использующие ваши классы, ожидают = для сравненияуказатели, а не сами экземпляры, изменение этого поведения приведет только к ошибкам, потому что люди не ожидают, что оно будет работать таким образом.
Если вы хотите включить способ семантического сравнения, это то, что равно () предназначен для, и вы можете переопределить его для реализации проверки на равенство любым способом, который имеет смысл для использования в вашем коде.