Interfaces genéricas

Actualización: noviembre 2007

Este tema contiene información general sobre las interfaces genéricas que proporcionan una funcionalidad común entre las distintas familias de tipos genéricos.

Interfaces genéricas

Las interfaces genéricas son los homólogos con seguridad de tipos de las interfaces no genéricas para las comparaciones de ordenación e igualdad, así como para la funcionalidad que comparten los tipos de colección genéricos.

Comparaciones de igualdad y ordenación

En el espacio de nombres System, las interfaces genéricas System.IComparable<T> e System.IEquatable<T>, como sus homólogos no genéricos, definen métodos para realizar comparaciones de ordenación y comparaciones de igualdad, respectivamente. Los tipos implementan estas interfaces para proporcionar la capacidad para realizar tales comparaciones.

En el espacio de nombres System.Collections.Generic, las interfaces genéricas IComparer<T> e IEqualityComparer<T> proporcionan un medio para definir una comparación de ordenación o igualdad a los tipos que no implementan la interfaz genérica System.IComparable<T> o System.IEquatable<T>, además de proporcionar un medio para redefinir las relaciones de los tipos que sí la implementan. Los métodos y constructores de muchas de las clases de colección genéricas utilizan estas interfaces. Por ejemplo, puede pasar un objeto IComparer<T> genérico al constructor de la clase SortedDictionary<TKey, TValue> para especificar un criterio de ordenación para un tipo que no implemente la interfaz genérica System.IComparable<T>. Hay sobrecargas del método genérico estático Array.Sort y el método de instancia List<T>.Sort para ordenar las matrices y listas mediante las implementaciones genéricas de IComparer<T>.

Las clases genéricas Comparer<T> y EqualityComparer<T> proporcionan clases base para implementaciones de las interfaces genéricas IComparer<T> y IEqualityComparer<T>, además de proporcionar comparaciones predeterminadas de ordenación e igualdad mediante sus respectivas propiedades Comparer<T>.Default y EqualityComparer<T>.Default.

Funcionalidad de colecciones

La interfaz genérica ICollection<T> es la interfaz básica para los tipos de colección genéricos. Proporciona la funcionalidad básica para agregar, quitar, copiar y enumerar elementos. ICollection<T> hereda tanto de IEnumerable<T> genérica como de IEnumerable no genérica.

La interfaz genérica IList<T> extiende la interfaz genérica ICollection<T> con métodos para la recuperación indizada.

La interfaz genérica IDictionary<TKey, TValue> extiende la interfaz genérica ICollection<T> con métodos para la recuperación mediante claves. Los tipos de diccionario genéricos de la biblioteca de clases base de .NET Framework también implementan la interfaz IDictionary no genérica.

La interfaz genérica IEnumerable<T> proporciona una estructura de enumerador genérica. La interfaz genérica IEnumerator<T> implementada por enumeradores genéricos hereda la interfaz IEnumerator no genérica, mientras que los miembros MoveNext y Reset, que no dependen del parámetro de tipo T, sólo aparecen en la interfaz no genérica. Esto significa que cualquier usuario de la interfaz no genérica también puede utilizar la interfaz genérica.

Vea también

Conceptos

Información general sobre los genéricos de .NET Framework

Colecciones genéricas en .NET Framework

Delegados genéricos para manipular matrices y listas

Ventajas y limitaciones de genéricos

Referencia

System.Collections.Generic

System.Collections.ObjectModel

Otros recursos

Genéricos en .NET Framework