IEqualityComparer.Equals(Object, Object) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 ser comparado.
- y
- Object
O segundo objeto a ser comparado.
Retornos
true se os objetos especificados forem iguais; caso contrário, false.
Exceções
x e y são de tipos diferentes e nenhum deles pode lidar com comparações com o outro.
Exemplos
O exemplo de código a seguir demonstra a implementação de uma diferenciação de maiúsculas de minúsculas IEqualityComparer. Neste exemplo, o CaseInsensitiveComparer.Compare método é usado para determinar se dois objetos são iguais, com base no fornecido 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
Comentários
Implemente esse método para fornecer uma comparação de igualdade personalizada para objetos.
Notas aos Implementadores
O Equals(Object, Object) método é reflexivo, simétrico e transitivo. Ou seja, retorna true se usado para comparar um objeto com ele mesmo; 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 necessárias para garantir que, se o Equals(Object, Object) método retornar true para dois objetos x ey, em seguida, o valor retornado pelo GetHashCode(Object) método deve x ser igual ao valor retornado.y