Каков ваш подход к написанию проверок на равенство для создаваемых вами structs
и classes
?
1) Требуется ли для «полной» проверки на равенство столько шаблонного кода (например, override Equals
, override GetHashCode
, общие Equals
, operator==
, operator!=
)?
2) Указываете ли вы явно, что ваши классы моделируют интерфейс IEquatable<T>
?
3) Правильно ли я понимаю, что нет реального способа автоматически применять переопределения Equals
, когда я вызываю что-то вроде a == b
и мне всегда приходится реализовывать оба элемента Equals
и operator==
?