Freigeben über


IEqualityComparer.GetHashCode(Object) Methode

Definition

Gibt einen Hashcode für das angegebene Objekt zurück.

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

Parameter

obj
Object

Das Object, für das ein Hashcode zurückgegeben werden soll.

Gibt zurück

Ein Hashcode für das angegebene Objekt.

Ausnahmen

Der Typ von obj ist ein Referenztyp, und obj ist null.

Beispiele

Im folgenden Codebeispiel wird die Implementierung einer nicht beachteten IEqualityComparerGroß-/Kleinschreibung veranschaulicht. In diesem Beispiel gibt die GetHashCode -Methode den vom Typ bereitgestellten Object Hashcode zurück.

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

Hinweise

Implementieren Sie diese Methode, um benutzerdefinierte Hashcodes für Objekte bereitzustellen, die dem von der Equals -Methode bereitgestellten benutzerdefinierten Gleichheitsvergleich entsprechen.

Hinweise für Ausführende

Implementierungen sind erforderlich, um sicherzustellen, dass, wenn die Equals(Object, Object) Methode für zwei -Objekte x und yzurückgibttrue, der von der GetHashCode(Object) -Methode für x zurückgegebene Wert dem für yzurückgegebenen Wert entsprechen muss.

Gilt für:

Weitere Informationen