IEqualityComparer.GetHashCode(Object) Metodo

Definizione

Viene restituito un codice hash per l'oggetto specificato.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

Parametri

obj
Object

Oggetto Object per cui è necessario che sia restituito un codice hash.The Object for which a hash code is to be returned.

Restituisce

Codice hash per l'oggetto specificato.A hash code for the specified object.

Eccezioni

Il tipo di obj è un tipo di riferimento e obj è null.The type of obj is a reference type and obj is null.

Esempi

Nell'esempio di codice seguente viene illustrata l'implementazione di un senza IEqualityComparerdistinzione tra maiuscole e minuscole.The following code example demonstrates the implementation of a case-insensitive IEqualityComparer. In questo esempio, il GetHashCode metodo restituisce il codice hash fornito Object dal tipo.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

Commenti

Implementare questo metodo per fornire codici hash personalizzati per gli oggetti, corrispondenti al confronto di uguaglianza personalizzato fornito dal Equals metodo.Implement this method to provide customized hash codes for objects,corresponding to the customized equality comparison provided by the Equals method.

Note per gli implementatori

Le implementazioni sono necessarie per garantire che se Equals(Object, Object) il metodo true restituisce per due x oggetti y GetHashCode(Object) e, il valore restituito dal metodo per x deve essere uguale al valore restituito per 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.

Si applica a

Vedi anche