IEqualityComparer.Equals(Object, Object) Metodo

Definizione

Determina se gli oggetti specificati sono uguali.

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

Parametri

x
Object

Primo oggetto da confrontare.

y
Object

Secondo oggetto da confrontare.

Restituisce

Boolean

true se gli oggetti specificati sono uguali; in caso contrario, false.

Eccezioni

x e y sono di tipi diversi e nessuno dei due può gestire confronti con l'altro.

Esempio

Nell'esempio di codice seguente viene illustrata l'implementazione di un oggetto senza distinzione tra maiuscole e IEqualityComparer minuscole. In questo esempio il CaseInsensitiveComparer.Compare metodo viene usato per determinare se due oggetti sono uguali, in base all'oggetto CultureInfo fornito.

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 un confronto di uguaglianza personalizzato per gli oggetti .

Note per gli implementatori

Il Equals(Object, Object) metodo è riflessivo, simmetrico e transitivo. In altre informazioni, restituisce se usato per confrontare un oggetto con se stesso; per due oggetti e se è per e e per due oggetti e z se è per e e anche per true true x y true y e x true x true x y true y z.

Le implementazioni sono necessarie per garantire che se il metodo restituisce per due oggetti e , il valore restituito dal metodo per deve essere uguale Equals(Object, Object) true al valore x y GetHashCode(Object) x restituito per y .

Si applica a