Вопросы с тегом 'gethashcode'

GetHashCode - это метод базового класса Object.Net Framework.
18
ответов

Каков наилучший алгоритм для переопределенного System.Object.GetHashCode?

В .NET System.Object.GetHashCode метод используется во многих местах во всех библиотеках базового класса .NET. Особенно при поиске предметов в коллекции быстро или для определения равенства. Существует ли стандартный алгоритм/наилучшая практика реали...
задан 04 нояб. '08 в 23:53
4
ответов

Реализация по умолчанию для Object.GetHashCode()

Как работает стандартная реализация для GetHashCode()? И эффективно ли он обрабатывает структуры, классы, массивы и т.д.? Я пытаюсь решить, в каких случаях я должен упаковать свои собственные, и в каких случаях я могу смело полагаться на реализацию...
задан 06 апр. '09 в 6:25
3
ответов

Какова роль GetHashCode в IEqualityComparer <T> в .NET?

Я пытаюсь понять роль метода GetHashCode для интерфейса IEqualityComparer. Следующий пример берется из MSDN: using System; using System.Collections.Generic; class Example { static void Main() { try { BoxEqualityComparer box...
задан 04 нояб. '10 в 12:43
11
ответов

Уникальный идентификатор объекта .NET

Есть ли способ получить уникальный идентификатор экземпляра? GetHashCode() то же самое для двух ссылок, указывающих на один и тот же экземпляр. Однако два разных экземпляра могут (довольно легко) получить один и тот же хэш-код: Hashtable hashCodes...
задан 15 апр. '09 в 12:39
5
ответов

Переопределение GetHashCode для изменяемых объектов?

Я прочитал около 10 различных вопросов о том, когда и как переопределить GetHashCode, но я все еще кое-что не получаю. Большинство реализаций GetHashCode основаны на хэш-кодах полей объекта, но было указано, что значение GetHashCode никогда не должн...
задан 17 мая '09 в 3:53
2
ответов

Как реализована функция GetHashCode() из строки С#?

Мне просто интересно, потому что я предполагаю, что это повлияет на производительность. Рассматривает ли он полную строку? Если да, он будет медленным на длинной строке. Если он рассмотрит только часть строки, она будет иметь плохую производительност...
задан 02 марта '13 в 15:29
5
ответов

Есть ли полная ссылка на реализацию IEquatable?

Многие из моих вопросов здесь, на SO, касаются реализации IEquatable. Я обнаружил, что это очень сложно реализовать правильно, потому что в наивной реализации есть много скрытых ошибок, и статьи, которые я нашел об этом, довольно неполны. Я хочу найт...
задан 20 авг. '09 в 19:48
10
ответов

Общие рекомендации и рекомендации по правильному переопределению объекта. GetHashCode()

Согласно MSDN, хеш-функция должна иметь следующие свойства: Если два объекта сравниваются как равные, метод GetHashCode для каждого объекта должен возвращать одно и то же значение. Однако, если два объекта не сравниваются как равные, методы GetHas...
задан 04 сент. '09 в 14:28
4
ответов

Как создать HashCode в .net(С#) для строки, безопасной для хранения в базе данных?

В цитате из Руководства и правила для GetHashCode Эрика Липперта: Правило: Потребители GetHashCode не могут полагаться на то, что он стабилен с течением времени или через приложения. Предположим, что у вас есть объект Customer у которого есть куча...
задан 01 марта '11 в 16:14
5
ответов

Почему объект System.String не кэширует хэш-код?

Взгляните на исходный код string.GetHashCode, используя Reflector показывает следующее (для версии mscorlib.dll 4.0): public override unsafe int GetHashCode() { fixed (char* str = ((char*) this)) { char* chPtr = str; int num ...
задан 16 июня '10 в 16:37
4
ответов

Какая лучшая стратегия для Equals и GetHashCode?

Я работаю с моделью домена и думал о различных способах реализации этих двух методов в .NET. Какова ваша предпочтительная стратегия? Это моя текущая реализация: public override bool Equals(object obj) { var newObj = obj as MyClass; ...
задан 02 марта '10 в 15:46
6
ответов

Переопределение GetHashCode

Как вы знаете, GetHashCode возвращает полу-уникальное значение, которое можно использовать для идентификации экземпляра объекта в коллекции. В качестве хорошей практики рекомендуется переопределить этот метод и реализовать свои собственные. Мой вопр...
задан 22 нояб. '10 в 0:27
7
ответов

С#: Как бы вы unit test GetHashCode?

Тестирование метода Equals довольно прямолинейно (насколько я знаю). Но как вы протестируете метод GetHashCode?
задан 08 нояб. '09 в 18:34
4
ответов

Хороший метод GetHashCode() для объектов списка Foo, соответствующих порядку

EnumerableObject : IEnumerable<Foo> обертывает a List<Foo> Если EnumerableObject a.SequenceEquals( EnumerableObject b), то они равны. Следовательно, a GetHashCode должен быть реализован. Проблема в том, что XOR каждый элемент в списк...
задан 11 нояб. '11 в 16:49
3
ответов

Переопределение GetHashCode()

В этой статье Джон Скит упомянул, что обычно использует такой алгоритм для переопределения GetHashCode(). public override int GetHashCode() { unchecked // Overflow is fine, just wrap { int hash = 17; // Suitable nullity checks etc, of co...
задан 14 июля '12 в 8:27