IEqualityComparer.GetHashCode(Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 y
zurückgibttrue
, der von der GetHashCode(Object) -Methode für x
zurückgegebene Wert dem für y
zurückgegebenen Wert entsprechen muss.