Red de conocimiento informático - Conocimiento informático - Programación delegada

Programación delegada

Cuando el usuario hace clic en un control o el mouse permanece en un área determinada, se genera un evento. Este evento lo proporciona la clase de control o la clase de ventana. Por ejemplo, la clase de botón notifica cuando se presiona el botón.

Para facilitar la programación, el programa que desencadena el evento generalmente se coloca en un módulo o componente separado, generalmente una clase. Por ejemplo, una clase de control o una clase de ventana son clases independientes. Cuando ocurre un evento, la clase emisora ​​(o clase de control) notifica a la clase del programa principal o a la clase receptora del evento y pasa los parámetros relevantes. La forma de ejecutar una notificación es vincular un método. La clase receptora vincula métodos a eventos de la clase emisora. Cuando la clase emisora ​​envía un evento, se ejecuta el método vinculado al evento en la clase receptora.

Los eventos son tipos de delegados y los métodos y eventos pueden vincularse mediante el operador de asignación de suma +=. Puede consultar Designer.cs del programa WinForm. Los controladores de control internos son todos controladores de eventos de enlace de símbolos +=. La clase receptora debe tener un método con la misma firma que el evento (como una firma de delegado). Ese método (llamado controlador de eventos) puede luego tomar las acciones apropiadas en respuesta al evento. Sin embargo, los programadores no necesitan construir de antemano métodos para vincular eventos en la clase receptora. Cuando se ingresa el símbolo +=, el sistema de programación le solicita que presione la tecla Tab para agregar automáticamente el nombre del método vinculado. Presione la tecla Tab por segunda vez para agregar automáticamente los parámetros del método, que son consistentes con el delegado. firma de la clase emisora.

La firma del evento. NET Framework, normalmente el primer parámetro es un objeto que hace referencia al origen del evento y el segundo parámetro es una clase que transmite datos relacionados con el evento. Sin embargo, en el lenguaje C#, este formulario no es obligatorio. Siempre que la firma del evento sea nula, puede ser idéntica a cualquier firma de delegado válida.

La palabra clave event declara un evento. La delegación es la base de los eventos. El tipo de evento debe ser un tipo de delegado, así que declare el delegado antes de declarar el evento. Un ejemplo sencillo es el siguiente:

Manejador de anulación delegado público

Prueba de clasificación

{

Manejador de eventos público OnClick

}

Aquí, primero declare el controlador delegado fuera de la clase y luego declare el evento dentro de la clase usando la palabra clave event, o puede declarar el delegado dentro de la clase. OnClick es un tipo de controlador que delega al controlador la implementación del evento y encapsula un método para implementar el evento.

El tipo de devolución del delegado debe ser nulo, pero puede aceptar parámetros, por ejemplo:

Delegado público nulo TestEventDelegate(Object sender, system. EventArgs e);

Al igual que los métodos, los eventos tienen firmas, incluido un nombre y una lista de parámetros. La firma de un evento está definida por el tipo de delegado y la lista de parámetros del delegado es la lista de eventos.

Debido al espacio limitado, no puedo dar ejemplos. Consulte mi blog y busque 163 blog danyaody en la columna web de Baidu. El capítulo 3 es un ejemplo de 3-14.