Bonjour,
Je cherche à comprendre la difference entre :
public event EventHandler OnSomethingHappened;
et
public EventHandler OnSomethingHappened;
Merci
Version imprimable
Bonjour,
Je cherche à comprendre la difference entre :
public event EventHandler OnSomethingHappened;
et
public EventHandler OnSomethingHappened;
Merci
Quand tu fais "public EventHandler bidule" tu crées une variable locale nommée bidule de type EventHandler. Pour l'assigner tu devrais mettre "bidule = new EventHandler" ou "bidule = valeur".
Quand tu fais "public event EventHandler bidule" tu crées un véritable évènement (:aie:)
L'assignation pourra se faire avec bidule += event, bidule -= event (donc déjà plusieurs personnes pourront s'abonner à l'évènement alors que dans le précédent cas ce n'est pas vrai)
Seule la classe l'ayant crée pourra faire bidule.Invoke
Et ça va correspondre aux petits éclairs jaunes dans Visual ...
En gros c'est ça ...
Pas tres convaincu, car pour ma part j'ai toujours utilisé :
public EventHandler bidule et je m'abonné à l'evenement par bidule += event !!!!
La seule difference que je vois c'est que dans cette maniere de faire je n'ai pas effectivement l'intelisens avec les le petit eclair, mais ca s'arrete la.
Le mot clé event sert de protection.
Quand tu déclares, tu définis juste un délégué. De ce fait, n'importe quelle autre classe pourra faire xxxxx.bidule = fonction_qui_va_bien(x,y);Code:public EventHandler bidule
et donc empêcher l'événement d'être propagé à toutes les classes qui y ont assigné un délégué via +=
Tandis que si tu le déclares comment event, les autres classe ne pourront que faire += et donc tu es sûr que ton événement sera propagé à qui de droit.