Condividi tramite


IEqualityComparer.GetHashCode(Object) Metodo

Definizione

Viene restituito 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

obj
Object

Oggetto Object per cui è necessario che sia restituito un codice hash.

Restituisce

Codice hash per l'oggetto specificato.

Eccezioni

Il tipo di obj è un tipo di riferimento e obj è null.

Esempio

Nell'esempio di codice seguente viene illustrata l'implementazione di un oggetto senza distinzione tra maiuscole IEqualityComparere minuscole. In questo esempio il metodo restituisce il GetHashCode codice hash fornito dal Object tipo.

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

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 assicurarsi 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 corrispondere al valore restituito per y.

Si applica a

Vedi anche