Я просто хочу подтвердить свое понимание нескольких основ. Надеюсь, вы не возражаете!static Object.Equals метод, реализация по умолчанию GetHashCode и класс словаря
Я понимаю статический равен методу
Object.Equals(objA, objB)
сначала проверяет равенство ссылок. Если не равны по ссылке, а затем вызывает экземпляр объекта равен методе
objA.Equals(objB)
В настоящее время в моем дублировании для равных, я первый проверить равенство ссылок, если не равно референциально затем проверить со всеми членами, чтобы увидеть, если семантика тоже самое. Это хороший подход? Если да, то статическая версия кажется излишней?
И что именно делает по умолчанию GetHashCode для объекта?
Если я добавлю свой объект в словарь, который является HashTable под ним и не переопределяет равные и GetHashCode, то, я думаю, я должен сделать, чтобы сделать его сортировкой оптимально, следовательно, лучшее время поиска?
I thionk MSDN - лучший источник для ваших вопросов: http://msdn.microsoft.com/en-us/library/336aedhh(v=vs.100).aspx и http://msdn.microsoft.com /en-us/library/system.object.gethashcode(v=vs.100).aspx –