IEqualityComparer.Equals(Object, Object) Metoda

Definice

Určuje, zda jsou zadané objekty stejné.

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

Parametry

x
Object

První objekt, který se má porovnat.

y
Object

Druhý objekt, který chcete porovnat.

Návraty

truejsou-li zadané objekty stejné; v opačném případě . false

Výjimky

x a y jsou z různých typů a ani jeden nemůže zpracovat porovnání s druhým.

Příklady

Následující příklad kódu ukazuje implementaci nerozlišující IEqualityComparermalá a velká písmena . V tomto příkladu CaseInsensitiveComparer.Compare se metoda používá k určení, zda jsou dva objekty stejné, na základě poskytnuté CultureInfo.

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

Poznámky

Implementujte tuto metodu, která poskytuje přizpůsobené porovnání rovnosti pro objekty.

Poznámky pro implementátory

Metoda Equals(Object, Object) je reflexní, symetrická a tranzitivní. To znamená, že se vrátí true , pokud se používá k porovnání objektu se samotným; true pro dva objekty x a y pokud je true určena y a x; a true pro dva objekty x , a z je-li true určena x a y také true pro y a z.

Implementace jsou vyžadovány k zajištění, že pokud Equals(Object, Object) metoda vrací true pro dva objekty x a y, pak hodnota vrácená GetHashCode(Object) metodou pro x musí se rovnat hodnotě vrácené pro y.

Platí pro