IEqualityComparer.Equals(Object, Object) Método

Definição

Determina se os objetos especificados são iguais.

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

Parâmetros

x
Object

O primeiro objeto a comparar.

y
Object

O segundo objeto para comparar.

Devoluções

true se os objetos especificados forem iguais; caso contrário, false.

Exceções

x e y são de tipos diferentes e nenhum deles consegue lidar com comparações com o outro.

Exemplos

O seguinte exemplo de código demonstra a implementação de um IEqualityComparer. Neste exemplo, o CaseInsensitiveComparer.Compare método é usado para determinar se dois objetos são iguais, com base no .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

Observações

Implemente este método para fornecer uma comparação de igualdade personalizada para os objetos.

Notas para Implementadores

O Equals(Object, Object) método é reflexivo, simétrico e transitivo. Ou seja, devolve true se usado para comparar um objeto consigo próprio; true para dois objetos x e y se for true para y e x; e true para dois objetos x e z se for true para x e y e também true para y e z.

As implementações são obrigatórias a garantir que, se o método devolve Equals(Object, Object) para dois objetos true e x, então o valor devolvido pelo y método para GetHashCode(Object) deve ser igual ao valor devolvido para x.y

Aplica-se a