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

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

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

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

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

Как работает стандартная реализация для GetHashCode()? И эффективно ли он обрабатывает структуры, классы, массивы и т.д.? Я пытаюсь решить, в каких случаях я должен упаковать свои собственные, и в каких случаях я могу смело полагаться на реализацию...
06 апр. '09 в 3: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 в 9:43
11

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

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

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

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

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

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

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

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

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

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

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

В цитате из Руководства и правила для GetHashCode Эрика Липперта: Правило: Потребители GetHashCode не могут полагаться на то, что он стабилен с течением времени или через приложения. Предположим, что у вас есть объект Customer у которого есть куча...
01 мар. '11 в 13: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 в 13:37
4

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

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

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

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

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

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

Почему ValueType.GetHashCode() реализован так, как есть?

От ValueType.cs **Action: Our algorithm for returning the hashcode is a little bit complex. We look ** for the first non-static field and get it hashcode. If the type has no ** non-static fields, we return the hashcode of the type....
01 окт. '10 в 17:28
3

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

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