Tengo un evento que actualmente está definido sin argumentos de evento. Es decir, los EventArgs que envía son EventArgs.Empty.¿Debería un evento que no tiene argumentos definir sus propios EventArgs personalizados o simplemente usar System.EventArgs en su lugar?
En este caso, es más simple para declarar mi manejador de eventos como:
EventHandler<System.EventArgs> MyCustomEvent;
No pienso en la adición de los argumentos de eventos para este evento, pero es posible que cualquier código podría necesitar cambiar de el futuro.
Por lo tanto, me inclino a que todos mis eventos siempre creen un tipo de argumentos de evento vacío que inheretis desde System.EventArgs
, incluso si no hay argumentos de eventos actualmente necesarios. Algo como esto:
public class MyCustomEventArgs : EventArgs
{
}
Y entonces mi definición de evento se convierte en la siguiente:
EventHandler<MyCustomEventArgs> MyCustomEvent;
Así que mi pregunta es la siguiente: ¿es mejor para definir mi propia MyCustomEventArgs
, incluso si no se le añade nada más allá heredando de System.EventArgs
, para que los argumentos del evento puedan agregarse en el futuro más fácilmente? ¿O es mejor definir explícitamente mi evento como return System.EventArgs
, para que quede más claro para el usuario que no hay eventos adicionales?
Me inclino por crear argumentos de eventos personalizados para todos mis eventos, incluso si los argumentos del evento están vacíos. Pero me preguntaba si otros pensaban que aclarar al usuario que los argumentos del evento están vacíos sería mejor.
Muchas gracias por adelantado,
Mike
Me estoy familiarizando con el manejo de eventos también. Solo quería confirmar que 'EventHandler
Sí, buena recuperación, está en lo cierto, debería leer: 'EventHandler', que ahora he corregido. El hecho de que el emisor sea un objeto está implícito cuando se usa la clase 'EventHandler <>'. Para obtener otra opinión sobre esto, es posible que desee echar un vistazo a "Firma de evento en .NET - ¿Usando un 'Remitente' de tipo fuerte?" (http://stackoverflow.com/questions/1046016/event-signature-in-net-using-a-strong-typed-sender), pero este enfoque alternativo no es estándar, por lo que es posible que no desee seguir este camino como un principiante. Sin embargo, es interesante y funciona muy bien. –