IEqualityComparer.Equals(Object, Object) Método

Definición

Determina si los objetos especificados son iguales.

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

Primer objeto que se va a comparar.

y
Object

Segundo objeto que se va a comparar.

Devoluciones

true si los objetos especificados son iguales; de lo contrario, false.

Excepciones

x y y son de diferentes tipos y ninguno de ellos puede controlar comparaciones con la otra.

Ejemplos

En el ejemplo de código siguiente se muestra la implementación de un elemento que no distingue mayúsculas de minúsculas IEqualityComparer. En este ejemplo, el CaseInsensitiveComparer.Compare método se usa para determinar si dos objetos son iguales, en función del proporcionado 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

Comentarios

Implemente este método para proporcionar una comparación de igualdad personalizada para los objetos.

Notas a los implementadores

El Equals(Object, Object) método es reflexivo, simétrico y transitivo. Es decir, devuelve true si se usa para comparar un objeto con sí mismo; true para dos objetos x y y si es true para y y x; y true para dos objetos x y z si es true para x y y , y también true para y y z.

Las implementaciones son necesarias para asegurarse de que si el Equals(Object, Object) método devuelve true para dos objetos x y y, el valor devuelto por el GetHashCode(Object) método x para debe ser igual al valor devuelto para y.

Se aplica a