IEqualityComparer.GetHashCode(Object) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce un codice hash per l'oggetto specificato.
public:
int GetHashCode(System::Object ^ obj);
public int GetHashCode(object obj);
abstract member GetHashCode : obj -> int
Public Function GetHashCode (obj As Object) As Integer
Parametri
Valori restituiti
Codice hash per l'oggetto specificato.
Eccezioni
Il tipo di obj è un tipo riferimento e obj è null.
Esempio
Nell'esempio di codice seguente viene illustrata l'implementazione di un oggetto senza distinzione tra IEqualityComparermaiuscole e minuscole. In questo esempio il GetHashCode metodo restituisce il codice hash fornito dal Object tipo .
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
Commenti
Implementare questo metodo per fornire codici hash personalizzati per gli oggetti, corrispondenti al confronto di uguaglianza personalizzato fornito dal Equals metodo .
Note per gli implementatori
Le implementazioni sono necessarie per garantire che se il Equals(Object, Object) metodo restituisce true per due oggetti x e y, il valore restituito dal GetHashCode(Object) metodo per x deve essere uguale al valore restituito per y.