Ho un evento che è attualmente definito senza argomenti evento. Cioè, l'EventArgs che invia è EventArgs.Empty.Un evento che non ha argomenti definisce un EventArgs personalizzato o utilizza semplicemente System.EventArgs?
In questo caso, è più semplice di dichiarare il mio gestore di eventi come:
EventHandler<System.EventArgs> MyCustomEvent;
Non ho intenzione di aggiungere argomenti di eventi per questo evento, ma è possibile che qualsiasi codice potrebbe essere necessario modificare in il futuro.
Pertanto, sono propenso a fare in modo che tutti i miei eventi creino sempre un evento vuoto tipo di argomento che eredita da System.EventArgs
, anche se non ci sono argomenti di evento attualmente necessari. Qualcosa di simile a questo:
public class MyCustomEventArgs : EventArgs
{
}
E poi la mia definizione evento diventa il seguente:
EventHandler<MyCustomEventArgs> MyCustomEvent;
Quindi la mia domanda è questa: è meglio definire il mio MyCustomEventArgs
, anche se non aggiunge nulla al di là ereditando da System.EventArgs
, in modo che gli argomenti dell'evento possano essere aggiunti in futuro più facilmente? O è meglio definire esplicitamente il mio evento come restituendo System.EventArgs
, in modo che sia più chiaro all'utente che non ci sono argomenti di evento aggiuntivi?
Sono propenso a creare argomenti evento personalizzati per tutti i miei eventi, anche se gli argomenti dell'evento sono vuoti. Ma mi chiedevo se gli altri pensassero che rendere più chiaro all'utente che gli argomenti dell'evento sono vuoti sarebbe meglio?
Molto grazie in anticipo,
Mike
Mi sto solo familiarizzando con la gestione degli eventi. Volevo solo confermare 'EventHandler
Sì, buon pickup, sei corretto, che dovrebbe leggere: 'EventHandler', che ora ho corretto. Il fatto che il mittente sia un oggetto è implicito quando si usa la classe 'EventHandler <>'. Per un altro aspetto su questo, si potrebbe voler dare un'occhiata a "Firma evento in. NET - Utilizzando un forte 'Mittente'?" (http://stackoverflow.com/questions/1046016/event-signature-in-net-using-a-strong-typed-sender), ma questo approccio alternativo non è standard, quindi potresti non voler seguire questa strada come principiante È comunque interessante e funziona molto bene. –