Definición de eventos en C#:
Una clase u objeto puede notificar a otras clases u objetos lo que ha ocurrido a través de eventos. La clase que envía (o provoca) el evento se llama "emisor" y la clase que recibe (o procesa) el evento se llama "suscriptor".
Los eventos tienen las siguientes características:
- El editor decide cuándo abrir el evento y el suscriptor decide qué acción realizar en respuesta al evento.
- Un evento puede tener varios suscriptores. Un suscriptor puede gestionar múltiples eventos de varios emisores.
- Los eventos sin suscriptores nunca se llaman.
- Los eventos se utilizan a menudo para informar a los usuarios sobre acciones, como clics de botón o acciones de selección de menús en interfaces gráficas.
- Si un evento tiene varios suscriptores, se llaman múltiples gestores de eventos simultáneamente cuando el evento se levanta. Para llamar a eventos de forma asíncrona, véase Llamar a métodos de sincronización usando asíncronos.
- Se pueden aprovechar los hilos de sincronización de eventos.
La palabra clave event se utiliza para declarar eventos en la clase publisher.
MS Link:El inicio de sesión del hipervínculo es visible.
¡En realidad no hay diferencia entre el método de escritura de eventos A y el método B!
Puedes consultar a:El inicio de sesión del hipervínculo es visible.
Gestionador <T>de EventosRepresenta un método que acepta dos parámetros (object sender, TEventArgs e) y devuelve un tipo void. donde TEventArgs debe ser un tipo derivado de la clase EventArgs. Este último parámetro se utiliza para almacenar los parámetros necesarios para el evento.
EventArgses la clase base de una clase que contiene datos de eventos, que no contiene datos de eventos, y es utilizada por eventos que no transmiten información de estado al manejador de eventos cuando el evento se eleva. Si el gestor de eventos necesita información de estado, la aplicación debe derivar una clase de esta clase para almacenar los datos.
Volátil. Lee .NET 4.0 no es compatible
// Resumen: Referencias a objetos leídas desde el campo especificado. Cuando se necesita en el sistema, se inserta una barrera de memoria para evitar que el procesador reordene las operaciones de memoria, como se muestra a continuación: Si este método aparece en el código tras realizar una lectura/escritura, el procesador no puede moverlo antes de este método. // Parámetros: Ubicación: Campos por leer. // Parámetros de tipo: T: El tipo de campo que hay que leer. Este debe ser el tipo de referencia, no el tipo de valor. // Resultados de los resultados: Lee la referencia T. Esta referencia la escribe cualquier procesador del ordenador, independientemente del número de procesadores o del estado de la caché del procesador. [Contrato de Fiabilidad(Consistencia.NoQuerráCorroCorruptoState, Cer.Éxito)] [SeguridadSeguroCrítico] [TargetedPatchingOptOut("Rendimiento crítico para inline a través de los límites de la imagen NGen")] T Read, estática pública <T>(ref T ubicación) donde T : clase;
|