Метод Add
Метод Add структуры
HashCode принимает
значение и включает его хеш во внутреннее
состояние. После цепочки Add итог
получают через
ToHashCode.
Синтаксис
hashCode.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
Пример
Давайте добавим int и string по очереди:
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
Пример
Давайте изменим порядок Add и сравним результат:
using System;
class Program
{
static void Main()
{
var hc1 = new HashCode();
hc1.Add(1);
hc1.Add(2);
var hc2 = new HashCode();
hc2.Add(2);
hc2.Add(1);
Console.WriteLine(hc1.ToHashCode() == hc2.ToHashCode());
}
}
Результат выполнения кода:
False
Пример
Давайте добавим null как ссылку:
#nullable enable
using System;
class Program
{
static void Main()
{
var hc1 = new HashCode();
string? str = null;
hc1.Add(str);
var hc2 = new HashCode();
hc2.Add(str);
Console.WriteLine(hc1.ToHashCode() == hc2.ToHashCode());
}
}
Результат выполнения кода:
True
Смотрите также
-
метод
ToHashCode,
который завершает цепочку Add -
метод
Combine,
который комбинирует без явного Add -
структура
HashCode,
которая объявляет Add -
метод
GetHashCode,
который даёт хеш отдельного объекта