Esta interfaz la implementan tipos cuyos valores se pueden igualar (por ejemplo, las clases numéricas y de cadena). Una clase o tipo de valor implementa el método Equals para crear un método específico del tipo que sea adecuado para determinar la igualdad de instancias.
Nota: |
|---|
La interfaz IComparable<(Of <(T>)>) define el método CompareTo, que determina el criterio de ordenación de instancias del tipo que se está implementando. La interfaz IEquatable<(Of <(T>)>) define el método Equals, que determina la igualdad de instancias del tipo que se está implementando. |
Los objetos de colección genéricos como Dictionary<(Of <(TKey, TValue>)>), List<(Of <(T>)>) y LinkedList<(Of <(T>)>) utilizan la interfaz IEquatable<(Of <(T>)>) al comprobar la igualdad en métodos como Contains, IndexOf, LastIndexOf y Remove. Debe implementarse para cualquier objeto que pudiera estar almacenado en una colección genérica.
Notas para los implementadores:
Reemplace el parámetro de tipo de la interfaz IEquatable<(Of <(T>)>) con el tipo que esté implementando esta interfaz.
Si implementa IEquatable<(Of <(T>)>), también debe invalidar las implementaciones de la clase base de Object..::.Equals(Object) y GetHashCode para que su comportamiento sea coherente con el del método IEquatable<(Of <(T>)>)..::.Equals. Si invalida el método Object..::.Equals(Object), se llama a su implementación invalidada también en las llamadas al método estático Equals(System.Object, System.Object) en la clase. Esto garantiza que todas las invocaciones del método Equals devuelvan resultados coherentes.