IEqualityComparer.GetHashCode(Object) Metoda

Definice

Vrátí kód hash pro zadaný objekt.

public:
 int GetHashCode(System::Object ^ obj);
public int GetHashCode(object obj);
abstract member GetHashCode : obj -> int
Public Function GetHashCode (obj As Object) As Integer

Parametry

obj
Object

Kód Object hash, pro který se má vrátit.

Návraty

Kód hash pro zadaný objekt.

Výjimky

obj Typ je referenční typ a obj je null.

Příklady

Následující příklad kódu ukazuje implementaci nerozlišující IEqualityComparermalá a velká písmena . V tomto příkladu GetHashCode metoda vrátí kód hash poskytnutý typem 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

Poznámky

Implementujte tuto metodu, která poskytuje přizpůsobené hashové kódy pro objekty, které odpovídají přizpůsobenému porovnání rovnosti poskytnuté metodou Equals .

Poznámky pro implementátory

Implementace jsou vyžadovány k zajištění, že pokud Equals(Object, Object) metoda vrací true pro dva objekty x a y, pak hodnota vrácená GetHashCode(Object) metodou pro x musí se rovnat hodnotě vrácené pro y.

Platí pro

Viz také