Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
Чтобы использовать класс в качестве ключа в коллекции (например, в Dictionary<TKey, TValue>
), необходимо правильно реализовать методы Equals
и GetHashCode
.
Переопределить Equals(object obj)
:
obj
) на равенство.obj
не является null
.obj
имеет тот же тип, что и текущий экземпляр.Переопределить GetHashCode()
:
Equals
.Equals
возвращает true
для двух объектов, то их методы GetHashCode
возвращают одно и то же значение.Опционально реализовать IEquatable<T>
:
Equals(T other)
, который может быть более производительным, избегая упаковки (boxing) для типов значений.Пример:
csharp
Чтобы использовать класс в качестве ключа в коллекции (например, в Dictionary<TKey, TValue>
), необходимо правильно реализовать методы Equals
и GetHashCode
.
Переопределить Equals(object obj)
:
obj
) на равенство.obj
не является null
.obj
имеет тот же тип, что и текущий экземпляр.Переопределить GetHashCode()
:
Equals
.Equals
возвращает true
для двух объектов, то их методы GetHashCode
возвращают одно и то же значение.Опционально реализовать IEquatable<T>
:
Equals(T other)
, который может быть более производительным, избегая упаковки (boxing) для типов значений.Пример:
csharp
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.