Genéricos

Definición - ¿Qué significa Genéricos?

Los genéricos se refieren a una característica en C # que permite definir una clase o método con el tipo como parámetro.

Los genéricos permiten diseñar clases y métodos cuyos tipos se especifican solo en el momento de la declaración y la instanciación. Esto permite el desarrollo de clases y métodos universales que ayudan a mejorar el rendimiento, la productividad y la seguridad de tipos.

Los genéricos se utilizan a menudo en la creación de clases de colección para implementar conceptos como listas, tablas hash, colas, etc. Estas clases administran un conjunto de objetos y encapsulan operaciones que no son específicas de un tipo de datos en particular.

Los genéricos también se conocen como polimorfismo paramétrico.

Techinfo explica los genéricos

Los genéricos se introdujeron en C # 2.0 como parte de Common Language Runtime de .NET para superar la limitación en la implementación de la generalización en versiones anteriores. La generalización se logró mediante la conversión de tipos hacia y desde el tipo de base universal, System.Object que no era seguro para los tipos y requería conversión, lo que da como resultado un impacto en el rendimiento.

Algunos de los beneficios de usar genéricos incluyen:

  • No es necesario enviar contenido para acceder a cada elemento de la colección.
  • El código de cliente que usa genéricos es seguro para los tipos durante la ejecución al evitar el uso de datos cuyo tipo es diferente al usado en la declaración.
  • El código no está duplicado para varios tipos de datos

La lista La clase de colección es un ejemplo de clase genérica proporcionada en la biblioteca de clases de .NET Framework que se puede usar para agregar, eliminar y buscar un elemento de cualquier tipo (T) que se le pasa como parámetro. Cuando se crea una instancia de la clase List con un parámetro de tipo en el código del cliente, sería similar a una clase concreta implementada con el mismo tipo.

Los genéricos son similares a las plantillas de C ++ en concepto, pero difieren principalmente en la implementación.

Esta definición se escribió en el contexto de C #