IEqualityComparer.GetHashCode(Object) IEqualityComparer.GetHashCode(Object) IEqualityComparer.GetHashCode(Object) IEqualityComparer.GetHashCode(Object) Method

Definition

Gibt einen Hashcode für das angegebene Objekt zurück.Returns a hash code for the specified 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

Parameter

obj
Object Object Object Object

Das Object, für das ein Hashcode zurückgegeben werden soll.The Object for which a hash code is to be returned.

Gibt zurück

Ein Hashcode für das angegebene Objekt.A hash code for the specified object.

Ausnahmen

Der Typ von obj ist ein Referenztyp, und obj ist null.The type of obj is a reference type and obj is null.

Beispiele

Im folgenden Codebeispiel wird die Implementierung einer groß- IEqualityComparer/Kleinschreibung veranschaulicht.The following code example demonstrates the implementation of a case-insensitive IEqualityComparer. In diesem Beispiel gibt die GetHashCode -Methode den Hashcode zurück, der Object vom-Typ bereitgestellt wird.In this example, the GetHashCode method returns the hash code provided by the Object type.

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 angepasste Hashcodes für-Objekte bereitzustellen, die dem von der Equals -Methode bereitgestellten angepassten Gleichheits Vergleich entsprechen.Implement this method to provide customized hash codes for objects,corresponding to the customized equality comparison provided by the Equals method.

Hinweise für Ausführende

Implementierungen sind erforderlich, um sicherzustellen, Equals(Object, Object) dass GetHashCode(Object) x true der Wert, der von yder-Methode für x zurückgegeben wird, gleich dem Wert ist, der für y.Implementations are required to ensure that if the Equals(Object, Object) method returns true for two objects x and y, then the value returned by the GetHashCode(Object) method for x must equal the value returned for y.

Gilt für:

Siehe auch