CA1009: Declarar los controladores de evento correctamente
Elemento | Valor |
---|---|
RuleId | CA1009 |
Category | Microsoft.Design |
Cambio importante | Problemático |
Causa
Un delegado que trata un evento público o protegido no tiene la firma, el tipo de valor devuelto o los nombres de parámetros correctos.
Nota
Esta regla está en desuso. Para más información, consulte Reglas en desuso.
Descripción de la regla
Los métodos de control de eventos toman dos parámetros. El primero es de tipo System.Object y se llama "sender". Éste es el objeto que provocó el evento. El segundo parámetro es de tipo System.EventArgs y se llama "e". Estos son los datos están asociados a este evento. Por ejemplo, si el evento se genera cada vez que se abre un archivo, los datos del evento normalmente contienen el nombre del archivo.
Los métodos del controlador de eventos no deben devolver un valor. En el lenguaje de programación de C#, esto se indica mediante el tipo de valor devuelto void
. Un controlador de eventos puede invocar varios métodos en varios objetos. Si se permitiera que los métodos devolvieran un valor, se producirían varios valores devueltos para cada evento y solo estaría disponible el valor del último método que se invocó.
Cómo corregir infracciones
Para resolver una infracción de esta regla, corrija la firma, el tipo de valor devuelto o los nombres de parámetro del delegado. Para más información, consulte el ejemplo siguiente.
Cuándo suprimir las advertencias
No suprima las advertencias de esta regla.
Ejemplo
En el ejemplo siguiente se muestra un delegado adecuado para controlar eventos. Los métodos que puede invocar este controlador de eventos cumplen con la firma especificada en las Directrices de diseño. AlarmEventHandler
es el nombre de tipo del delegado. AlarmEventArgs
deriva de la clase base de los datos de eventos, EventArgs, y contiene los datos de eventos de alarma.
using System;
namespace DesignLibrary
{
public class AlarmEventArgs : EventArgs {}
public delegate void AlarmEventHandler(object sender, AlarmEventArgs e);
}
Reglas relacionadas
CA2109: Revisar los controladores de eventos visibles
Vea también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de