Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
432 of 1492 menu
◀ ▶

Метод GetHashCode

Метод GetHashCode интерфейса IEqualityComparer<T> возвращает число для хеш-таблиц. Для равных по Equals объектов код должен совпадать.

Синтаксис

int code = comparer.GetHashCode(obj);

Пример

Давайте получим хеш числа:

using System; using System.Collections.Generic; class Program { static void Main() { int code = EqualityComparer<int>.Default.GetHashCode(5); Console.WriteLine(code == EqualityComparer<int>.Default.GetHashCode(5)); } }

Результат выполнения кода:

True

Пример

Давайте сравним хеши разных int:

using System; using System.Collections.Generic; class Program { static void Main() { int a = EqualityComparer<int>.Default.GetHashCode(1); int b = EqualityComparer<int>.Default.GetHashCode(2); Console.WriteLine(a == b); } }

Результат выполнения кода:

False

Пример

Давайте сравним хеши разных строк:

using System; using System.Collections.Generic; class Program { static void Main() { int a = EqualityComparer<string>.Default.GetHashCode("abcde"); int b = EqualityComparer<string>.Default.GetHashCode("12345"); Console.WriteLine(a == b); } }

Результат выполнения кода:

False

Пример

Давайте проверим согласованность с Equals:

using System; using System.Collections.Generic; class Program { static void Main() { var cmp = EqualityComparer<int>.Default; Console.WriteLine(cmp.GetHashCode(3) == cmp.GetHashCode(3)); } }

Результат выполнения кода:

True

Смотрите также

  • метод Equals,
    который определяет равенство объектов
  • интерфейс IEqualityComparer,
    который объединяет Equals и GetHashCode
  • класс EqualityComparer,
    который предоставляет Default
  • интерфейс IEquatable,
    который задаёт Equals без упаковки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить