C # es un lenguaje de programación desarrollado por Microsoft. Es compatible con la programación estructurada y la programación orientada a objetos. Los delegados y eventos se utilizan para la programación dirigida por eventos en C #. Un delegado es un puntero de tipo seguro a un método. En una aplicación con una interfaz gráfica de usuario (GUI), hay botones, etc. Cuando se hace clic en un botón, se produce algún tipo de acción. Esas acciones se llaman eventos. Por ejemplo, la actualización de una página web activará el evento de carga de página. Este artículo discute la diferencia entre delegados y eventos en C #. los diferencia clave entre delegado y evento en C # es que un delegado es una referencia a un método mientras que un evento está asociado con un controlador de eventos que utiliza un delegado. Cuando ocurre un evento, envía una señal al delegado. Luego el delegado ejecuta la función correspondiente. Por lo tanto, todos los eventos dependen de delegados..
1. Resumen y diferencia clave
2. Qué son los delegados en C #
3. Qué son los eventos en C #
4. Similitudes entre delegados y eventos en C #
5. Comparación lado a lado - Delegados vs Eventos en C # en forma tabular
6. Resumen
Los delegados en C # son similares a las funciones de devolución de llamada en otros lenguajes de programación como JavaScript. Las funciones de devolución de llamada se asignan en tiempo de ejecución. Proporcionan una funcionalidad que se puede activar y desactivar según sea necesario. Lo mismo se puede implementar usando delegados en C #. Los delegados en C # desacoplan la persona que llama y la función llamada. Por lo tanto, reduce el acoplamiento pesado.
.Marco NET clasifica los tipos en dos categorías. Son tipos de valor y tipos de referencia. La estructura es un ejemplo de tipo de valor. La clase es un ejemplo de un tipo de referencia. Los delegados también son tipos de referencia. Un delegado se utiliza para mantener una referencia a un método. Son punteros de tipo seguro. Los delegados se derivan de la clase System.Delegate. La declaración de delegado es similar a una declaración de método pero contiene la palabra clave "delegado". La sintaxis del delegado es la siguiente. delegado El tipo de retorno declara el valor de retorno por el método. Es llamado por el delegado. La lista de parámetros define los parámetros requeridos por el método. Consulte el siguiente programa con los delegados.
Figura 01: Programa C # con delegados
De acuerdo con el programa anterior, los métodos calSquare y calCube son similares al delegado declarado. En el programa principal, la variable cal se asigna a la función calSquare. Ahora, cal está apuntando al método calSquare. Cuando se pasa el valor, se devuelve el valor cuadrado y se imprime en la pantalla. Una vez más, cal se asigna al método calCube. Ahora, cal está apuntando al método calCube. Al pasar el valor, el valor del cubo se devuelve e imprime en la pantalla. El mismo delegado se utiliza para referir diferentes métodos. Por lo tanto, aumenta la flexibilidad del programa..
En una aplicación puede haber pulsaciones de teclas, clics de botones y movimientos del mouse. Cuando estos ocurran, un evento habrá subido. Cuando se presiona el botón Enviar en un formulario de envío, el evento button_click () se muestra en segundo plano. El evento llama a ejecutar la función asociada. Cuando ocurre un evento, la aplicación responde a eso. Hay dos secciones en un programa de manejo de eventos. El editor contiene la definición de eventos y los delegados. El suscriptor acepta el evento y proporciona el controlador de eventos..
La declaración del evento es evento; El tipo de una declaración de evento debe ser un tipo de delegado, y el delegado debe ser tan accesible como el evento en sí. El nombre del evento debe ser un nombre de C # válido.
Figura 02: Programa C # con Eventos
De acuerdo con el programa anterior, se crea el delegado y el evento. En la clase Calcular, hay un método para sumar dos números. Si se encuentra un número impar, ocurrirá el evento. Es el eventOddNumber (). En el método principal, el controlador de eventos eventOddNumber llama al delegado. Finalmente, el delegado ejecuta el método..
Delegados vs Eventos en C # | |
Un delegado es una variable de tipo de referencia que contiene la referencia a un método.. | Un evento es un miembro de clase de tipo delegado usado por el objeto o clase para proporcionar notificación a otros objetos que un evento ha ocurrido. |
Palabra clave | |
Un delegado se declara usando la palabra clave 'delegado'. | Un evento se declara usando la palabra clave "evento". |
Dependencia | |
Los delegados no son confiables. | Los eventos dependen de los delegados.. |
Los delegados y los eventos son dos conceptos asociados con la programación dirigida por eventos en C #. Este artículo discutió la diferencia entre delegados y eventos en C #. La diferencia entre el delegado y el evento en C # es que un delegado es una referencia a un método, mientras que un evento está asociado con un controlador de eventos que utiliza un delegado. Los eventos dependen de los delegados. Cuando ocurre un evento, envía una señal al delegado. Luego el delegado ejecuta la función correspondiente.
1.Balagurusamy, E. Programación en C #, un estreno. Cuarta ed., McGraw Hill Education (India) Private Limited, 2016.
2. "Menú principal". C Tutorial. Disponible aquí
3.sachinbpaul. Delegados en C #, Sachin Paul, 1 de octubre de 2014. Disponible aquí