Описание тега gethashcode

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

Должен ли GetHashCode быть реализован для IEquatable<T> на изменяемых типах?

Я реализую IEquatable&lt;T&gt;и мне трудно найти консенсус по GetHashCode переопределить в изменчивом классе. Следующие ресурсы обеспечивают реализацию где GetHashCode будет возвращать различные значения в течение времени жизни объекта, если объект …
01 мар '18 в 17:43
2 ответа

Как указать, что экземпляры некоторых классов не должны использоваться в качестве ключей словаря?

Меня интересует ваше мнение относительно проблемы, которая возникла при реализации небольшой библиотеки для написания интеграционных / системных тестов на C#. Библиотека состоит из 2 частей: тестового API-интерфейса и тестового Runtime API. Разработ…
26 мар '13 в 10:01
3 ответа

Object.GetHashCode

Мой вопрос может дублировать реализацию по умолчанию для Object.GetHashCode(), но я спрашиваю снова, потому что я не понял принятого ответа на этот вопрос. Для начала у меня есть три вопроса о принятом ответе на предыдущий вопрос, который цитирует н…
16 июл '09 в 19:28
2 ответа

Расчет GetHashCode

Я пытаюсь переопределить GetHashCode чтобы обеспечить уникальность, так как я использую экземпляры в качестве ключей в словаре: IDictionary&lt;Base, int&gt; _counts = new Dictionary&lt;Base,int&gt;(); У меня есть две проблемы: class sealed First : B…
18 апр '15 в 11:10
5 ответов

Почему хеш-коды отличаются, когда два объекта одного типа имеют одинаковые значения?

Насколько я понимаю, GetHashCode вернет одно и то же значение для двух разных экземпляров, которые имеют одинаковые значения. Документация MSDN немного размыта по этому вопросу. Хеш-код - это числовое значение, которое используется для идентификации…
04 апр '13 в 17:14
1 ответ

Перегрузка Equals / GetHashCode в VB.NET для использования объектов в качестве словарных ключей

У меня есть словарь, ключи которого являются объектами Excel Range (нет, это не подлежит обсуждению), определяется следующим образом (тип CellProp является объектом, который содержит различные свойства ячейки): Dim dic As New Dictionary(Of Excel.Ran…
09 апр '12 в 14:37
4 ответа

Почему тип "базовый" объект мой конкретный тип?

Это кажется очень простым вопросом, но, очевидно, я что-то упускаю. Я сделал тест: class A { public override int GetHashCode() { Console.WriteLine(base.GetType().Name); return 0; } } Я ожидал найти "объект", но я нахожу "А". Я полагался на это повед…
09 фев '18 в 16:43
4 ответа

GetHashCode Равная реализация для класса в C#

У меня есть класс Person, для которого я должен переопределить метод Equals и GetHashCode. Два объекта лица равны, если Имя соответствует ИЛИ, если Электронное письмо соответствует. Какой хороший способ сделать это с помощью довольно эффективной хэш…
08 ноя '10 в 22:11
1 ответ

32-битный GetHashCode() в 64-битной.NET 4.5 CLR

На 64-битной платформе.NET 4.5 можно в любом случае вычислить, что будет результатом метода GetHashCode() строки на 32-битной платформе.NET 4.5? Очевидно, что это не очень хорошая идея. Это было спрошено и объяснено здесь и здесь. Только ответ, кото…
31 мар '14 в 23:22
2 ответа

Ключи словаря не содержат ключ, который уже содержится в ключах

Почему следующая "существующая" логическая переменная получает значение false??? foreach (Cell existCell in this.decoratorByCell.Keys) { //this call yield the same hashcode for both cells. still exist==false bool exist = this.decoratorByCell.Contain…
25 апр '10 в 10:54
2 ответа

Что делают методы "public override bool equals(object obj)" и "public override int gethashcode()"?

Я начал изучать перегрузку оператора, и в примере кода, который я нашел, эти два метода были (public override bool equals(object obj) а также public override int gethashcode()). Я не понял, почему они там, потому что, когда я перезаписал эту програм…
2 ответа

Перегрузка == оператор для класса, содержащего только строковые атрибуты

Каков наилучший (самый элегантный или эффективный) способ перегрузки оператора равенства в классе, содержащем только строковые атрибуты? Пример: class MagicClass { public string FirstAttribute { get; set; } public string SecondAttribute { get; set; …
1 ответ

Как выбрать простые числа для вычисления хеш-кода?

Этот вопрос следует за ответом, данным Джоном Скитом на вопрос: " Каков наилучший алгоритм для переопределенного System.Object.GetHashCode?". Для вычисления хеш-кода используется следующий алгоритм: public override int GetHashCode() { unchecked // O…
09 июл '16 в 10:28
2 ответа

Как правильно переопределить string.GetHashCode()?

Я ищу, чтобы создать пользовательский метод string.GetHashCode() для некоторых строк, используемых в пространстве имен программы (в соответствии с рекомендациями, приведенными на странице msdn строки string.GetHashCode()). К сожалению, класс строки …
08 дек '13 в 18:41
2 ответа

Как использовать метод equals для проверки полей в разных объектах, чтобы увидеть, равны ли они?

Как я могу использовать объекты equals() и метод gethashcode(), чтобы проверить значение поля объектов, чтобы убедиться, что оно истинно? например номера заказов У меня есть несколько различных объектов, которые я инициирую, и мне нужно запустить ме…
18 ноя '13 в 04:10
1 ответ

Реализация GetHashCode в классе значений

У меня есть класс Money, и я хочу знать, как лучше всего реализовать GetHashCode для этого класса значений: $1!= €1. Взвешенное значение по отношению к валюте * не сработает. public class Money : System.IEquatable&lt;Money&gt; { public Money(Currenc…
15 фев '12 в 09:56
0 ответов

GetHashCode для класса, который содержит словарь

У меня есть класс, который мне нужно переопределить Equals а также GetHashCode методы. Класс содержит словарь с string ключ и значение SomeOtherClass, которое, в свою очередь, также имеет свою собственную реализацию Equals а также GetHashCode, publi…
04 авг '18 в 10:02
7 ответов

C#: Как бы вы протестировали модуль GetHashCode?

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

KeyEventArgs.Modifier для int32

Я делаю программу, чтобы иметь настраиваемые пользователем горячие клавиши, и у меня почти все работает, кроме 1 заминки, преобразовывающей ключи модификатора в int32 с использованием gethashcode() private void hotBox1_KeyDown(object sender, KeyEven…
07 окт '17 в 20:26
1 ответ

Как реализовать GetHashCode() в структуре C#

У меня есть структура, которая переопределяет Equals() метод и компилятор жалуется на GetHashCode() не переопределяется. Моя структура: private struct Key { ... public override int GetHashCode() { return ?; } public int FolderID; public MyEnum SubIt…
10 сен '15 в 12:40