Документация MSDN на Object.GetHashCode() описывает 3 противоречащих правилам того, как должен работать этот метод.
- Если два объекта одного и того же типа представляют одно и то же значение, хеш-функция должна возвращать одно и то же значение константы для любого объекта.
- Для лучшей производительности хеш-функция должна генерировать случайное распределение для всех входных данных.
- Функция хэша должна возвращать точно такое же значение независимо от любых изменений, внесенных в объект.
Правила 1 и 3 противоречат мне.
Возвращает ли Object.GetHashCode() уникальный номер на основе значения объекта или ссылки для объекта. Если я переопределю метод, я могу выбрать, что использовать, но я хотел бы знать, что используется внутри, если кто знает.