IEquatable<T> Interface
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.
Define um método generalizado que implementa uma classe ou um tipo de valor para criar um método de tipo específico para determinar igualdade de instâncias.
generic <typename T>
public interface class IEquatable
public interface IEquatable<T>
type IEquatable<'T> = interface
Public Interface IEquatable(Of T)
Parâmetros de tipo
- T
O tipo de objetos a serem comparados.
- Derivado
Exemplos
Consulte o exemplo do IEquatable<T>.Equals método .
Comentários
Essa interface é implementada por tipos cujos valores podem ser equivalentes (por exemplo, as classes numéricas e de cadeia de caracteres). Um tipo de valor ou classe implementa o Equals método para criar um método específico de tipo adequado para determinar a igualdade de instâncias.
Observação
A IComparable<T> interface define o CompareTo método , que determina a ordem de classificação de instâncias do tipo de implementação. A IEquatable<T> interface define o Equals método , que determina a igualdade de instâncias do tipo de implementação.
A IEquatable<T> interface é usada por objetos de coleção genéricos, como Dictionary<TKey,TValue>, List<T>e LinkedList<T> ao testar a igualdade em métodos como Contains
, IndexOf
, LastIndexOf
e Remove
. Ele deve ser implementado para qualquer objeto que possa ser armazenado em uma coleção genérica.
Notas aos Implementadores
Substitua o parâmetro de tipo da IEquatable<T> interface pelo tipo que está implementando essa interface.
Se você implementar IEquatable<T>, também deverá substituir as implementações de classe base de Equals(Object) e GetHashCode() para que seu comportamento seja consistente com o Equals(T) do método . Se você substituir Equals(Object), sua implementação substituída também será chamada em chamadas para o método estático Equals(System.Object, System.Object)
em sua classe. Além disso, você deve sobrecarregar os op_Equality
operadores e op_Inequality
. Isso garante que todos os testes de igualdade retornem resultados consistentes.
Para obter informações sobre como substituir Equals(Object), consulte Equals(Object).
Para um tipo de valor, você sempre deve implementar IEquatable<T> e substituir Equals(Object) para melhorar o desempenho. Equals(Object) tipos de valor de caixas e depende da reflexão para comparar dois valores quanto à igualdade. A implementação de Equals(T) e a substituição de Equals(Object) devem retornar resultados consistentes.
Se você implementar IEquatable<T>, também deverá implementar IComparable<T> se as instâncias do seu tipo puderem ser ordenadas ou classificadas. Se o tipo implementar IComparable<T>, quase sempre implementará IEquatable<T>.
Observe que há alguns designs em que um tipo dá suporte a uma relação de pedido, mas a igualdade pode ser distinta de uma relação de ordenação. Considere uma Person
classe em que você classifica em ordem alfabética. Duas pessoas com o mesmo nome classificam o mesmo, mas não são a mesma pessoa.
Métodos
Equals(T) |
Indica se o objeto atual é igual a outro objeto do mesmo tipo. |