Leer en inglés

Compartir a través de


IEquatable<T> Interfaz

Definición

Define un método generalizado que implementa un tipo de valor o clase para crear un método específico del tipo para determinar la igualdad de instancias.

public interface IEquatable<T>

Parámetros de tipo

T

Tipo de objetos que se van a comparar.

Derivado

Ejemplos

Vea el ejemplo del método IEquatable<T>.Equals.

Comentarios

Esta interfaz se implementa mediante tipos cuyos valores se pueden comparar (por ejemplo, las clases numéricas y de cadena). Un tipo de valor o clase implementa el método Equals para crear un método específico del tipo adecuado para determinar la igualdad de instancias.

Nota

La interfaz IComparable<T> define el método CompareTo, que determina el criterio de ordenación de las instancias del tipo de implementación. La interfaz IEquatable<T> define el método Equals, que determina la igualdad de instancias del tipo de implementación.

La interfaz IEquatable<T> se usa en objetos de colección genéricos como Dictionary<TKey,TValue>, List<T>y LinkedList<T> al probar la igualdad en métodos como Contains, IndexOf, LastIndexOfy Remove. Debe implementarse para cualquier objeto que se pueda almacenar en una colección genérica.

Notas a los implementadores

Reemplace el parámetro type de la interfaz IEquatable<T> por el tipo que implementa esta interfaz.

Si implementa IEquatable<T>, también debe invalidar las implementaciones de clase base de Equals(Object) y GetHashCode() para que su comportamiento sea coherente con el del método Equals(T). Si invalida Equals(Object), también se llama a la implementación invalidada en llamadas al método estático Equals(System.Object, System.Object) en la clase . Además, debe sobrecargar los operadores op_Equality y op_Inequality. Esto garantiza que todas las pruebas de igualdad devuelvan resultados coherentes.

Para obtener información sobre cómo invalidar Equals(Object), vea Equals(Object).

Para un tipo de valor, siempre debe implementar IEquatable<T> e invalidar Equals(Object) para mejorar el rendimiento. Equals(Object) cuadros de valores y se basa en la reflexión para comparar dos valores para la igualdad. Tanto la implementación de Equals(T) como la invalidación de Equals(Object) deben devolver resultados coherentes.

Si implementa IEquatable<T>, también debe implementar IComparable<T> si las instancias del tipo se pueden ordenar o ordenar. Si el tipo implementa IComparable<T>, casi siempre también implementa IEquatable<T>.

Tenga en cuenta que hay algunos diseños en los que un tipo admite una relación de pedido, pero la igualdad puede ser distinta de una relación de ordenación. Considere una Person clase en la que se ordena alfabéticamente. Dos personas con el mismo nombre ordenan lo mismo, pero no son la misma persona.

Métodos

Equals(T)

Indica si el objeto actual es igual a otro objeto del mismo tipo.

Se aplica a

Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Consulte también