Colección de citas famosas - Colección de máximas - ¿Qué es un objeto genérico?

¿Qué es un objeto genérico?

Introducción a ¿Qué son los genéricos? Los genéricos son una característica de los lenguajes de programación. Permite a los programadores definir algunas partes variables al escribir código en un lenguaje de programación fuertemente tipado, y esas partes deben especificarse antes de su uso. Varios lenguajes de programación, sus compiladores y entornos de ejecución tienen diferente soporte para genéricos. Un tipo de datos que parametriza tipos para lograr la reutilización del código y mejorar la eficiencia del desarrollo de software. Las clases genéricas son tipos de referencia y objetos de montón. Introducen principalmente el concepto de parámetros de tipo. Definición de genéricos Hay dos tipos principales de definiciones de genéricos: Algunos tipos contienen parámetros de tipo en la codificación del programa, es decir, los parámetros de los genéricos solo pueden representar clases, no objetos individuales. (Esta es la definición más común hoy en día) Algunas clases que contienen parámetros en la codificación de programas. Sus parámetros pueden representar clases u objetos, etc. (Hoy en día, la gente se refiere principalmente a esto como plantillas). Independientemente de qué definición se use, los parámetros del genérico deben especificarse cuando el genérico realmente se usa. Algunos lenguajes de programación fuertemente tipados admiten genéricos, cuyo objetivo principal es mejorar la seguridad de tipos y reducir la cantidad de conversiones de clases. Sin embargo, algunos lenguajes de programación que admiten genéricos solo pueden lograr parte del propósito. [Edite este párrafo] Características genéricas de algunos lenguajes de programación genéricos de NET Framework Dado que los tipos reales de los parámetros de tipo genérico de .NET Framework no se eliminarán en tiempo de ejecución, la velocidad de ejecución se acelerará porque se reduce el número de conversiones de tipos. Además, puede utilizar el método GetType para conocer los tipos reales de genéricos y sus parámetros de tipo mientras se ejecuta el programa, y ​​también puede utilizar la programación de reflexión. Permite restricciones en los parámetros de tipo de genéricos individuales, incluidas las siguientes formas (suponiendo que C es un parámetro de tipo de un genérico, una clase general, una clase genérica o un parámetro de tipo de un genérico): T es una clase. T es un tipo de valor. T tiene un constructor público sin parámetros. T implementa la interfaz I. T es C o hereda de C . Genéricos en Java Los parámetros genéricos de Java sólo pueden representar clases, no objetos individuales. Dado que los tipos reales de los parámetros de tipo genéricos de Java se eliminan en tiempo de compilación, los tipos de sus parámetros de tipo no se pueden conocer en tiempo de ejecución. El compilador de Java agregará automáticamente codificación de conversión de tipos al compilar genéricos, por lo que la velocidad de ejecución no se acelerará mediante el uso de genéricos. Java permite restricciones en los parámetros de tipo de genéricos individuales, incluidas las dos formas siguientes (suponiendo que T es un parámetro de tipo de un genérico y C es una clase general, una clase genérica o un parámetro de tipo de un genérico): T implementa la interfaz I. T es C o hereda de C . Genéricos de C++ (plantillas) C++ no puede restringir los parámetros de tipo de los genéricos. En el momento de la compilación, cada tipo genérico cerrado utilizado (es decir, un tipo genérico en el que se han especificado los tipos reales de todos los parámetros genéricos) tendrá codificación independiente y el compilador garantizará la seguridad de tipos en este momento. Sin embargo, si un genérico usa un miembro de su parámetro genérico y el parámetro genérico no contiene ese miembro, puede parecer que el mensaje de error generado por el compilador no tiene nada que ver con el problema real, lo que dificulta la depuración. [Edite este párrafo] Beneficios de los genéricos: Los genéricos son una característica recientemente agregada de C# 2.0, que agrega gran eficiencia y flexibilidad a la escritura de programas orientados a objetos usando el lenguaje C#. No hay boxeo y desempaquetado forzados de tipos de valor, ni reducción de tipos de referencia, por lo que se mejora el rendimiento. Permite al programador diferir la determinación de la especificación del tipo de datos real hasta que se cree una instancia del genérico. Los genéricos brindan a los desarrolladores un enfoque de programación de alto rendimiento que aumenta la reutilización del código y les permite escribir soluciones muy elegantes.