Partager via


IEqualityComparer.GetHashCode(Object) Méthode

Définition

Retourne un code de hachage pour l'objet spécifié.

public:
 int GetHashCode(System::Object ^ obj);
public int GetHashCode (object obj);
abstract member GetHashCode : obj -> int
Public Function GetHashCode (obj As Object) As Integer

Paramètres

obj
Object

Object pour lequel un code de hachage doit être retourné.

Retours

Code de hachage pour l'objet spécifié.

Exceptions

Le type de obj est un type référence et obj a la valeur null.

Exemples

L’exemple de code suivant illustre l’implémentation d’un objet qui ne respecte pas la casse IEqualityComparer. Dans cet exemple, la GetHashCode méthode retourne le code de hachage fourni par le 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

Remarques

Implémentez cette méthode pour fournir des codes de hachage personnalisés pour les objets, correspondant à la comparaison d’égalité personnalisée fournie par la Equals méthode .

Notes pour les responsables de l’implémentation

Des implémentations sont nécessaires pour s’assurer que si la Equals(Object, Object) méthode retourne true pour deux objets x et y, la valeur retournée par la GetHashCode(Object) méthode pour x doit être égale à la valeur retournée pour y.

S’applique à

Voir aussi