Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Genéricos en C#. Objetivos Conocer genéricos en C#. Utilizar los genéricos en C# para la resolución de problemas. Aplicar el concepto de genericidad utilizado en la POO. Materiales y Equipo Computadora con Visual Studio 2012 o superior. Guía Número 10. Introducción Teórica Los generics son el mecanismo de implementación de las clases parametrizadas introducido en la versión 2.0 del lenguaje C#. Una clase parametrizada es exactamente igual a una clase de las habituales, salvo por un pequeño detalle: su definición contiene algún elemento que depende de un parámetro que debe ser especificado en el momento de la declaración de un objeto en dicha clase. Tipos de datos genéricos ¿Qué es un tipo genérico? Un tipo genérico corresponde a un contenedor de tipos, es decir, un lugar o ubicación donde podemos hacer que resida un tipo de dato específico. Este concepto se puede contrastar con las plantillas en el lenguaje de programación C++. Gráficamente, podemos representarlo, así: 2 Programación II. Guía No. 10 Métodos Genéricos Un método genérico es aquel que tiene especificado en su forma un conjunto de parámetros de tipo. Gracias a esta propiedad de genericidad, el método puede operar sobre cualquier tipo pasado como argumento y realizar operaciones generales para los tipos para los que fue construido (propiedad de generalización). Incluso, gozará de los beneficios fundamentales de los tipos genéricos: alto desempeño, seguridad de tipos y reusabilidad. Declaración de un método genérico: {modificador de acceso} {tipo retorno} {nombre método}<T[,T,…]>({parámtros}){restricciones} { //Implementación } Clase Genérica El modelamiento de una clase genérica compone la aplicación o seguimiento de un principio básico, el de la generalización. Una clase genérica es un tipo de dato que posee operaciones generalizadas o independientes del tipo de dato a manipular. Declaración de una clase genérica: {modificador de acceso} class {nombre clase}<T[,T,…]>{restricciones} { //Cuerpo de la declaración } La Clase Genérica List<T> Es una de las clases más utilizada en lo que a colecciones genéricas se refiere. Esta lista representa una lista de objetos tipificada que puede ser accedida por índices, cuenta con métodos que permiten buscar, ordenar y manipular la lista. Declaración de una lista genérica: List<<Tipo_dato>><Nombre_Lista> = new <<Tipo_Dato>>(); Programación II. Guía No. 10 3 Procedimiento Ejemplo_1: Bibliografía A continuación se presenta un programa que muestra la definición de una clase genérica y las diferentes que se pueden realizar sobre la misma: Guía operaciones 1 Ejemplo_2 A continuación se presenta un ejemplo de aplicación de consola que hace uso de una lista genérica para almacenar un número indeterminado de objetos. Además sobre la lista se procede a aplicar las funciones de agregar, eliminar y buscar registros dentro de dicha estructura. El siguiente código deben guardarlo con el nombre: Instrumento.cs 4 Programación II. Guía No. 10 En la siguiente clase [Display] ,tenemos la creación de la lista genérica, así como también el menú con las diferentes opciones que presentaremos al usuario. Guardar el archivo como: Display.cs Programación II. Guía No. 10 5 6 Programación II. Guía No. 10 Programación II. Guía No. 10 7 Ejemplo_3 Se muestra la implementación de métodos genéricos. Además, se utiliza la palabra clave “dynamic”, la cual permite que las operaciones en las que se produce omitan la comprobación de tipo en tiempo de compilación. En su lugar se resuelven estas operaciones en tiempo de ejecución. Análisis de Resultados Ejercicio No. 1: Modificar el ejemplo 1 de tal manera que la aplicación: 1. Solicite Datos al usuario para guardarlos en la lista. 2. Busque un dato específico. 3. Muestre todos los datos de la lista. 8 Programación II. Guía No. 10 Ejercicio No. 2: Tomando como base el ejemplo 3, y haciendo uso de los métodos genéricos, deberá crear un menú con las siguientes opciones: RC. Raíz Cuadrada. EV. Contar los elementos de un vector. EX. Salir. Investigación Complementaria Investigar lo siguiente: ¿Cuáles son las ventajas y desventajas al usar los generics de C#? ¿Qué son las bibliotecas de clase STL y para qué sirven? Ejercicio: Desarrollar una aplicación haciendo uso del Generic Array_List, que permita hacer lo siguiente: A. Llenar ArrayList. B. Mostrar elementos. C. Buscar dentro de ArrayList. D. Salir. 9 Programación II. Guía No. 10 Guía 10: Genéricos en C#. Hoja de cotejo: Alumno: 10 Máquina No: EVALUACIÓN Docente: % CONOCIMIENTO Del 20 al 30% APLICACIÓN DEL CONOCIMIENTO Del 40% al 60% ACTITUD Del 15% al 30% TOTAL 100% GL: Fecha: 1-4 5-7 8-10 Conocimiento deficiente de los fundamentos teóricos Conocimiento y explicación incompleta de los fundamentos teóricos Conocimiento completo y explicación clara de los fundamentos teóricos No tiene actitud proactiva. Actitud propositiva y con propuestas no aplicables al contenido de la guía. Tiene actitud proactiva y sus propuestas son concretas. Nota