IEqualityComparer.GetHashCode(Object) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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.