Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2016, 14:19   #1
BadCats
Пользователь
 
Аватар для BadCats
 
Регистрация: 31.01.2016
Сообщений: 67
По умолчанию Equals и GetHashCode и их переопределение?

Говорят существует правило, что если мы переопределяем Equals, то должны переопраделить и GetHashCode - почему?
BadCats вне форума Ответить с цитированием
Старый 02.11.2016, 14:47   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Не то чтобы правило, и не то что прям должен... это из разряда хорошего стиля. Почему? Кратко: потому что они тесно связаны. Если вы переопределяете Equals, то значит вы меняете стандартную логику сравнения, а т.к. GetHashCode для одинаковых объектов должен выдавать одинаковый хеш, то и его логику надо подправить.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Gethashcode vs equals ts-alan Общие вопросы .NET 14 04.04.2014 11:07
equals Русtam Общие вопросы по Java, Java SE, Kotlin 2 01.10.2012 17:37
отредактировать программу и реализовать equals() и hashCode() akkalenik Общие вопросы по Java, Java SE, Kotlin 1 07.10.2011 20:16
equals!!! grimm_jow Общие вопросы по Java, Java SE, Kotlin 5 13.06.2010 13:45
Переопределение операций toeman Общие вопросы C/C++ 2 20.11.2007 11:21