Метод ToHashCode
Метод ToHashCode экземпляра
HashCode возвращает
накопленный хеш после вызовов
Add. Один
экземпляр после ToHashCode повторно
не используют - сравнивают два одинаковых
набора Add.
Синтаксис
hashCode.ToHashCode()
Пример
Давайте сравним ToHashCode у двух одинаковых цепочек Add:
using System;
class Program
{
static void Main()
{
var hc1 = new HashCode();
hc1.Add(5);
var hc2 = new HashCode();
hc2.Add(5);
Console.WriteLine(hc1.ToHashCode() == hc2.ToHashCode());
}
}
Результат выполнения кода:
True
Пример
Давайте сравним ToHashCode у двух одинаковых наборов Add:
using System;
class Program
{
static void Main()
{
var hc1 = new HashCode();
hc1.Add(1);
hc1.Add("abcde");
var hc2 = new HashCode();
hc2.Add(1);
hc2.Add("abcde");
Console.WriteLine(hc1.ToHashCode() == hc2.ToHashCode());
}
}
Результат выполнения кода:
True
Пример
Давайте проверим, что другой набор даёт другой хеш:
using System;
class Program
{
static void Main()
{
var hc1 = new HashCode();
hc1.Add(1);
var hc2 = new HashCode();
hc2.Add(2);
Console.WriteLine(hc1.ToHashCode() == hc2.ToHashCode());
}
}
Результат выполнения кода:
False
Пример
Давайте соберём хеш из трёх полей:
using System;
class Program
{
static void Main()
{
var hc1 = new HashCode();
hc1.Add(5);
hc1.Add("abcde");
hc1.Add(true);
var hc2 = new HashCode();
hc2.Add(5);
hc2.Add("abcde");
hc2.Add(true);
Console.WriteLine(hc1.ToHashCode() == hc2.ToHashCode());
}
}
Результат выполнения кода:
True
Смотрите также
-
метод
Add,
который наполняет HashCode перед ToHashCode -
метод
Combine,
который сразу возвращает int-хеш -
метод
GetHashCode,
который у объектов возвращает хеш -
структура
HashCode,
которая объявляет ToHashCode