Interfaces genéricas de .NET

En este artículo se ofrece información general sobre las interfaces genéricas de .NET que proporcionan funcionalidad común a distintas 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 están marcados como covariantes o contravariantes, y ofrecen una mayor flexibilidad para asignar y usar tipos que implementan estas interfaces. Para obtener más información, vea Covarianza y contravarianza.

Comparaciones de igualdad y ordenación

Funcionalidad de colección

  • 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 la interfaz genérica IEnumerable<T> como de la interfaz no genérica IEnumerable.

  • 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 con clave. Los tipos de diccionario genéricos de la biblioteca de clases base de .NET también implementan la interfaz no genérica IDictionary.

  • 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 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 usar 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. La más destacada de estas interfaces es INumber<TSelf>, que se corresponde aproximadamente con un número "real".

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

Vea también