IEquatable<T> Interface

Definição

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 igualados (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, LastIndexOfe 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 Equals(Object)substituir , consulte Equals(Object).

Para um tipo de valor, você deve sempre implementar IEquatable<T> e substituir Equals(Object) por um melhor desempenho. Equals(Object) tipos de valor de caixas e depende da reflexão para comparar dois valores de 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 instâncias do seu tipo puderem ser ordenadas ou classificadas. Se o tipo implementar IComparable<T>, você 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.

Aplica-se a

Confira também