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ý má být vrácen kód hash.

Návraty

Int32

Kód hash pro zadaný objekt.

Výjimky

obj Typ je typ odkazu a obj je null.

Příklady

Následující příklad kódu ukazuje implementaci nerozlišující malá a velká IEqualityComparerpísmena . V tomto příkladu GetHashCode vrátí metoda kód hash zadaný typem Object .

ref class myCultureComparer : IEqualityComparer
{
private:
    CaseInsensitiveComparer^ myComparer;

public:
    myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer::DefaultInvariant;
    }

    myCultureComparer(CultureInfo^ myCulture)
    {
        myComparer = gcnew CaseInsensitiveComparer(myCulture);
    }

    virtual bool Equals(Object^ x, Object^ y) 
    {
        if (myComparer->Compare(x, y) == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    virtual int GetHashCode(Object^ obj)
    {
        return obj->ToString()->ToLower()->GetHashCode();
    }
};
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, odpovídající přizpůsobenému porovnání rovnosti poskytované metodou Equals .

Poznámky pro implementátory

Implementace se vyžadují, aby se zajistilo, že pokud Equals(Object, Object) metoda vrátí true dva objekty x , a ypak hodnota vrácená metodou GetHashCode(Object) musí x být rovna hodnotě vrácené pro y.

Platí pro

Viz také