IEqualityComparer.Equals(Object, Object) Methode

Definition

Bestimmt, ob die angegebenen Objekte gleich sind.

public:
 bool Equals(System::Object ^ x, System::Object ^ y);
public bool Equals (object x, object y);
public bool Equals (object? x, object? y);
abstract member Equals : obj * obj -> bool
Public Function Equals (x As Object, y As Object) As Boolean

Parameter

x
Object

Das erste zu vergleichende Objekt.

y
Object

Das zweite zu vergleichende Objekt.

Gibt zurück

Boolean

true, wenn die angegebenen Objekte gleich sind, andernfalls false.

Ausnahmen

x und y sind nicht vom gleichen Typ. Keines der beiden kann einen Vergleich mit dem jeweils anderen Objekt behandeln.

Beispiele

Im folgenden Codebeispiel wird die Implementierung einer ohne Unterscheidung nach Groß-/Kleinschreibung IEqualityComparer veranschaulicht. In diesem Beispiel wird die -Methode verwendet, um basierend auf dem bereitgestellten zu bestimmen, ob zwei -Objekte CaseInsensitiveComparer.Compare gleich CultureInfo sind.

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

Hinweise

Implementieren Sie diese Methode, um einen benutzerdefinierten Gleichheitsvergleich für -Objekte zu ermöglichen.

Hinweise für Ausführende

Die Equals(Object, Object) Methode ist symmetrisch, symmetrisch und transitiv. Das heißt, es gibt zurück, wenn es verwendet wird, um ein Objekt mit sich selbst zu vergleichen; für zwei -Objekte und , wenn es für und ist, und für zwei -Objekte und z, wenn es für und und auch für true true und x y true z y x true x true x y true y ist.

Implementierungen sind erforderlich, um sicherzustellen, dass der von der -Methode für zurückgegebene Wert dem für zurückgegebenen Wert entspricht, wenn die -Methode für zwei -Objekte und Equals(Object, Object) true x y GetHashCode(Object) x y zurückgibt.

Gilt für