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 equiparados (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, IndexOfe LastIndexOf``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>, você também deverá substituir as implementações de Equals(Object) classe base e GetHashCode() , portanto, seu comportamento é 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 operadores e op_Inequality os op_Equality operadores. Isso garante que todos os testes de igualdade retornem resultados consistentes.

Para obter informações sobre substituição Equals(Object), consulte Equals(Object).

Para um tipo de valor, você deve sempre implementar IEquatable<T> e substituir Equals(Object) por um melhor desempenho. Equals(Object) caixas de valores tipos e depende de reflexão para comparar dois valores para igualdade. A implementação e Equals(T) a substituição devem Equals(Object) 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 seu tipo for IComparable<T>implementado, você quase sempre também implementará IEquatable<T>.

Observe que há alguns designs em que um tipo dá suporte a uma relação de ordem, 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