IEqualityComparer.GetHashCode(Object) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает хэш-код для указанного объекта.
public:
int GetHashCode(System::Object ^ obj);
public int GetHashCode(object obj);
abstract member GetHashCode : obj -> int
Public Function GetHashCode (obj As Object) As Integer
Параметры
Возвращаемое значение
Хэш-код для указанного объекта.
Исключения
Тип obj является ссылочным типом и obj является null.
Примеры
В следующем примере кода демонстрируется реализация без учета IEqualityComparerрегистра. В этом примере метод возвращает хэш-код, GetHashCode предоставленный типом Object .
class myCultureComparer : IEqualityComparer
{
public CaseInsensitiveComparer myComparer;
public myCultureComparer()
{
myComparer = CaseInsensitiveComparer.DefaultInvariant;
}
public myCultureComparer(CultureInfo myCulture)
{
myComparer = new CaseInsensitiveComparer(myCulture);
}
public new bool Equals(object x, object y)
{
return myComparer.Compare(x, y) == 0;
}
public int GetHashCode(object obj)
{
return obj.ToString().ToLower().GetHashCode();
}
}
Public Class myCultureComparer
Implements IEqualityComparer
Dim myComparer As CaseInsensitiveComparer
Public Sub New()
myComparer = CaseInsensitiveComparer.DefaultInvariant
End Sub
Public Sub New(ByVal myCulture As CultureInfo)
myComparer = New CaseInsensitiveComparer(myCulture)
End Sub
Public Function Equals1(ByVal x As Object, ByVal y As Object) _
As Boolean Implements IEqualityComparer.Equals
Return myComparer.Compare(x, y) = 0
End Function
Public Function GetHashCode1(ByVal obj As Object) _
As Integer Implements IEqualityComparer.GetHashCode
Return obj.ToString().ToLower().GetHashCode()
End Function
End Class
Комментарии
Реализуйте этот метод для предоставления настраиваемых хэш-кодов для объектов, соответствующих настраиваемого сравнения равенства, предоставленного методом Equals .
Примечания для тех, кто реализует этот метод
Реализации необходимы, чтобы гарантировать, что если Equals(Object, Object) метод возвращается true для двух объектов x , а yзначение, возвращаемое методом GetHashCode(Object) , x должно быть равно значению, возвращаемого для y.