Из спецификации:
Тип записи реализует System.IEquatable и включает
синтезированный строго типизированный перегрузка Equals(R?other), где R —
тип записи. Метод является общедоступным и виртуальным, если
тип записи не запечатан.
Какова реальная цель объявления метода как виртуального, если мы не можем переопределить его с помощью пользовательского кода в производных классах, поскольку он автоматически реализуется компилятором? Что автоматически генерируемая компилятором реализация гарантирует хорошую работу записей, без которой мы иначе не смогли бы жить?
return Equals((object)other);
Подробнее здесь: https://stackoverflow.com/questions/788 ... ual-method