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.

Valori restituiti

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 i confronti con l'altro.

Esempio

Nell'esempio di codice seguente viene illustrata l'implementazione di un oggetto senza distinzione tra IEqualityComparermaiuscole e minuscole. In questo esempio, il CaseInsensitiveComparer.Compare metodo viene usato per determinare se due oggetti sono uguali, in base all'oggetto fornito 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

Commenti

Implementare questo metodo per fornire un confronto personalizzato di uguaglianza per gli oggetti.

Note per gli implementatori

Il Equals(Object, Object) metodo è riflessivo, simmetrico e transitivo. Vale a dire, restituisce true se utilizzato per confrontare un oggetto con se stesso; true per due oggetti x e y se è true per y e x, e true per due oggetti x e z se è true per x e y e anche true per y e z.

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

Si applica a