IEquatable<T> Interface

Definition

{1&gt;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.&lt;1}Defines a generalized method that a value type or class implements to create a type-specific method for determining equality of instances.

generic <typename T>
public interface class IEquatable
public interface IEquatable<T>
type IEquatable<'T> = interface
Public Interface IEquatable(Of T)

Type Parameters

T

O tipo de objetos a serem comparados.The type of objects to compare.

Derived

Examples

Consulte o exemplo para o método IEquatable<T>.Equals.See the example for the IEquatable<T>.Equals method.

Remarks

Essa interface é implementada por tipos cujos valores podem ser equivalentes (por exemplo, as classes numéricas e de cadeia de caracteres).This interface is implemented by types whose values can be equated (for example, the numeric and string classes). Um tipo de valor ou classe implementa o método Equals para criar um método específico de tipo adequado para determinar a igualdade de instâncias.A value type or class implements the Equals method to create a type-specific method suitable for determining equality of instances.

Note

A interface IComparable<T> define o método CompareTo, que determina a ordem de classificação das instâncias do tipo de implementação.The IComparable<T> interface defines the CompareTo method, which determines the sort order of instances of the implementing type. A interface IEquatable<T> define o método Equals, que determina a igualdade de instâncias do tipo de implementação.The IEquatable<T> interface defines the Equals method, which determines the equality of instances of the implementing type.

A interface IEquatable<T> é 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.The IEquatable<T> interface is used by generic collection objects such as Dictionary<TKey,TValue>, List<T>, and LinkedList<T> when testing for equality in such methods as Contains, IndexOf, LastIndexOf, and Remove. Ele deve ser implementado para qualquer objeto que possa ser armazenado em uma coleção genérica.It should be implemented for any object that might be stored in a generic collection.

Notes to Implementers

Substitua o parâmetro de tipo da interface IEquatable<T> pelo tipo que está implementando essa interface.Replace the type parameter of the IEquatable<T> interface with the type that is implementing this 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 do método Equals(T).If you implement IEquatable<T>, you should also override the base class implementations of Equals(Object) and GetHashCode() so that their behavior is consistent with that of the Equals(T) method. Se você substituir Equals(Object), a implementação substituída também será chamada em chamadas para o método estático Equals(System.Object, System.Object) em sua classe.If you do override Equals(Object), your overridden implementation is also called in calls to the static Equals(System.Object, System.Object) method on your class. Além disso, você deve sobrecarregar os operadores de op_Equality e op_Inequality.In addition, you should overload the op_Equality and op_Inequality operators. Isso garante que todos os testes de igualdade retornem resultados consistentes.This ensures that all tests for equality return consistent results.

Para obter informações sobre como substituir Equals(Object), consulte o artigo Equals(Object).For information on overriding Equals(Object), see the Equals(Object) article.

Para um tipo de valor, você sempre deve implementar IEquatable<T> e substituir Equals(Object) para obter um melhor desempenho.For a value type, you should always implement IEquatable<T> and override Equals(Object) for better performance. Equals(Object) tipos de valor de caixas e se baseia na reflexão para comparar dois valores de igualdade.Equals(Object) boxes value types and relies on reflection to compare two values for equality. A implementação de Equals(T) e sua substituição de Equals(Object) devem retornar resultados consistentes.Both your implementation of Equals(T) and your override of Equals(Object) should return consistent results. Se você implementar IEquatable<T>, também deverá implementar IComparable<T> se as instâncias do seu tipo puderem ser ordenadas ou classificadas.If you implement IEquatable<T>, you should also implement IComparable<T> if instances of your type can be ordered or sorted. Se o seu tipo implementa IComparable<T>, quase sempre implemente também IEquatable<T>.If your type implements IComparable<T>, you almost always also implement 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.Note that there are some designs where a type supports an order relation, but equality may be distinct from an ordering relation. Considere uma classe `Person` em que você classifica alfabeticamente.Consider a `Person` class where you sort alphabetically. Duas pessoas com o mesmo nome têm a mesma classificação, mas não são a mesma pessoa.Two people with the same name sort the same, but are not the same person.

Methods

Equals(T)

Indica se o objeto atual é igual a outro objeto do mesmo tipo.Indicates whether the current object is equal to another object of the same type.

Applies to

See also