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

Переопределение GetHashCode для изменяемых объектов?
Я прочитал около 10 разных вопросов о том, когда и как переопределить GetHashCode , но я все еще кое-что не понимаю. Большинство реализаций GetHashCode основаны на хэш-кодах полей объекта, но было указано, что значение GetHashCode никогда не...
9853 просмотров
schedule 25.02.2022

Object.GetHashCode
Мой вопрос может дублировать реализацию по умолчанию для Object.GetHashCode () , но я спрашиваю снова, потому что я не понял принятый ответ на Вон тот. Для начала у меня есть три вопроса о принятом ответе на предыдущий вопрос , который цитирует...
10304 просмотров
schedule 08.02.2022

Почему объект System.String может не кэшировать свой хеш-код?
Взгляд на исходный код для string.GetHashCode с использованием Reflector показывает следующее (для mscorlib.dll версии 4.0): public override unsafe int GetHashCode() { fixed (char* str = ((char*) this)) { char* chPtr = str;...
3321 просмотров

Компилятор сгенерировал GetHashCode()
Я работаю над написанием компилятора для языка, работающего на .net, и мне бы хотелось, чтобы он автоматически генерировал метод GetHashCode, но у меня есть несколько вопросов: Возможно ли это, знает ли компилятор достаточно о задействованных...
470 просмотров

Создание перегрузки для String.GetHashCode() для возврата одного и того же значения в средах x86 и x64
У меня есть сценарий, в котором мой код на стороне сервера работает в среде x86, а клиентская часть работает в среде x64. Проблема возникает из-за того, что мы используем String.GetHashCode() для идентификации объектов в HashTable, поскольку...
493 просмотров
schedule 30.04.2024

Хорошее переопределение GetHashCode() для списка объектов Foo с соблюдением порядка
EnumerableObject : IEnumerable<Foo> заворачивает List<Foo> Если EnumerableObject a.SequenceEquals( EnumerableObject b) , то они равны. Поэтому необходимо реализовать GetHashCode . Проблема заключается в том, что операция...
28400 просмотров
schedule 14.12.2022

Каковы недостатки использования Guid().GetHashCode() при переопределении GetHashCode()
Я нашел реализацию GetHashCode(), которая выглядит так Guid _hashCode = Guid.NewGuid(); public override int GetHashCode() { return _hashCode.GetHashCode(); } Даже если Equals выглядит правильно, правильно ли говорить,...
3253 просмотров
schedule 06.12.2023

Как реализована функция GetHashCode() строки C#?
Мне просто любопытно, потому что я думаю, что это повлияет на производительность. Учитывает ли он полную строку? Если да, это будет медленно на длинной строке. Если он рассматривает только часть строки, у него будет плохая производительность...
34409 просмотров
schedule 25.05.2022

Как уменьшить сложность GetHashCode
Я хочу уменьшить время выполнения кода. Глядя на некоторые результаты тестирования, я обнаружил, что GetHashCode() занимает 21,62% времени выполнения. Я также получил предупреждение: Предупреждение 1 DA0010: .*.GetHashCode() = 7,63;...
290 просмотров
schedule 20.02.2024

Equals/GetHashCode переопределяет предупреждение в производном классе без состояния
Я создал строго типизированный неизменяемый класс-оболочку для различных идентификаторов строк, которые проходят через нашу систему. Абстрактный класс BaseId: (некоторые проверки ошибок и форматирование опущены для краткости...) public abstract...
3996 просмотров
schedule 03.07.2022

Почему GetHashCode должен реализовывать ту же логику, что и Equals?
На этой странице MSDN он говорит: Предупреждение: Если вы переопределите метод GetHashCode, вы также должны переопределить Equals, и наоборот. Если ваш переопределенный метод Equals возвращает true, когда два объекта проверяются на...
249 просмотров
schedule 29.05.2022

Как Equals и GetHashCode реализованы для анонимных типов?
В справке сказано следующее: Анонимные типы - это типы классов, которые являются производными непосредственно от объекта и не могут быть приведены ни к какому типу, кроме объекта. Компилятор предоставляет имя для каждого анонимного типа, хотя...
2509 просмотров
schedule 25.11.2022

Следует ли реализовать GetHashCode для IEquatable ‹T› на изменяемых типах?
Я реализую IEquatable<T> , и мне трудно найти консенсус по переопределению GetHashCode для изменяемого класса. Все следующие ресурсы предоставляют реализацию, в которой GetHashCode будет возвращать разные значения в течение жизненного...
1017 просмотров

IEquatable‹Point3D› в пределах допуска, как реализовать GetHashCode()
У меня есть структура Point3d , которая реализует IEquatable<Point3d> следующим образом: public override bool Equals(object obj) { return obj is Point3d p && Equals(p); } public bool Equals(Point3d other) { return...
241 просмотров
schedule 21.01.2023

Visual Studio предлагает две версии генерации кода для Equals и GetHashCode.
Visual Studio предлагает генерировать код для Equals() и GetHashCode() двумя способами. public class Identifier { public string firstName; public string lastName; internal Identifier(string firstName, string lastName) { this.firstName =...
69 просмотров
schedule 06.04.2023