Compartir a través de


Interfaces genéricas en .NET

En este artículo se proporciona una visión general de las interfaces genéricas de .NET que proporcionan funcionalidad común entre familias de tipos genéricos.

Las interfaces genéricas proporcionan equivalentes con seguridad de tipos a las interfaces no genéricas para ordenación y comparaciones de igualdad, y para una funcionalidad compartida con los tipos de colección genéricos. .NET 7 presenta interfaces genéricas para tipos de tipo numérico, por ejemplo, System.Numerics.INumber<TSelf>. Estas interfaces permiten definir métodos genéricos que proporcionan funcionalidad matemática, donde el parámetro de tipo genérico está restringido para ser un tipo que implementa una interfaz genérica numérica.

Nota:

Los parámetros de tipo de varias interfaces genéricas se marcan como covariante o contravariante, lo que proporciona mayor flexibilidad en la asignación y el uso de tipos que implementan estas interfaces. Para obtener más información, vea Covarianza y Contravarianza.

Comparaciones de igualdad y ordenación

Funcionalidad de recopilación

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

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

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

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

Funcionalidad matemática

.NET 7 presenta interfaces genéricas en el espacio de nombres System.Numerics que describen tipos numéricos y la funcionalidad disponible para ellos. Los 20 tipos numéricos que proporciona la biblioteca de clases base de .NET, por ejemplo, Int32 y Double, se han actualizado para implementar estas interfaces. El más destacado de estas interfaces es INumber<TSelf>, que aproximadamente corresponde a un número "real".

Para obtener más información sobre estas interfaces, consulte Matemáticas genéricas.

Consulte también