Pourquoi les classes dérivées devraient-elles gérer un événement sans attacher un délégué?
Q1:
« La méthode ListControl.OnSelectedIndexChanged permet également aux classes dérivées à gérer l'événement sans y attacher un délégué. Ceci est la technique préférée pour gérer l'événement dans une classe dérivée. »
A) Si je comprends la citation ci-dessus, si nous tirons une classe de ListControl, nous devrions au lieu de souscrire à l'événement SelectedIndexChanged , traiter procédé OnSelectedIndexChanged() en tant que gestionnaire d'événement et de mettre ainsi une logique de traitement d'événement à l'intérieur:
protected override void OnSelectedIndexChanged(
EventArgs e
{
//event handling logic
}
Pourquoi serait-ce mieux que l'abonnement à un événement (à l'intérieur .aspx) via OnSelectedIndexChanged = « name_of_event_handler »?
B) Quoi qu'il en soit, dans le fichier ascx nous utilisons l'attribut OnSelectedIndexChanged pour attacher gestionnaire d'événements à un événement. Le nom de cet attribut est le même que le nom de la méthode OnSelectedIndexChanged(). Pourquoi donc? Pourquoi ne pas plutôt le nom de cet attribut SelectedIndexChanged:
<asp:ListControl SelectedIndexChanged = ”name_of_event_handler”
Après tout, l'attribut fait référence à un événement et non à une méthode (OnSelectedIndexChanged()) qui appelle cet événement!
Thanx
EDIT:
Bonjour,
Cependant, soyez sûr que vous appelez base.On [EventName] ou événement gagné t le feu!
En supposant que vous ne voulez pas que quelqu'un d'autre pour être en mesure de répondre à cet événement, alors serait-il tout à fait correct de ne pas appeler base.On [EventName], puisque je ne pense pas appeler ne sera pas vraiment faire du mal en plus de ne pas déclencher un événement (et donc les gestionnaires d'événements ne seront pas appelés)?
Je réalise que certains événements doivent être déclenchés pour que Framework puisse faire son travail, mais qu'en est-il de ne pas appeler base.On [SelectedIndexChanged]?