IEqualityComparer.Equals(Object, Object) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.