2010-06-16 1 views
1

Cette question concerne uniquement le premier paramètre de tout gestionnaire d'événement, c'est-à-dire 'objet'. Je suis juste curieux de comprendre la meilleure pratique qui devrait être adoptée tout en élevant un événement.Meilleure pratique concernant le paramètre 'objet' de l'événement

Le cas est simple lorsque l'événement provient de mon objet lui-même, dans ce cas, je peux simplement appeler ... RaiseSomeEvent (this, someArgs). Que doit-on faire si mon objet agit en tant qu'homme intermédiaire et que l'événement provient d'un autre objet, et que l'intermédiaire est seulement responsable de le relancer? Dans ce cas, je vais avoir deux choix:

1) RaiseSomeEvent (expéditeur, someArgs) // simplement passer l'objet qui a été passé par l'objet source. 2) RaiseSomeEvent (this, someArgs)

Existe-t-il une règle concernant le paramètre 'objet' d'un événement? comme, il devrait avoir une référence à l'objet source (celui qui a déclenché cet événement), ou je peux le faire quand même selon mes exigences?

Répondre

3

Je voudrais utiliser le cadre ici pour l'inspiration.

Typiquement, le cas est le plus simple - l'objet est l'objet qui élève l'événement. Cependant, il existe des cas où des objets "filtrent" des événements et agissent comme intermédiaires dans le cadre. Le cas qui vient à l'esprit est Routed Events dans WPF -

Dans ce cas, le Framework utilise l'approche consistant à ajouter une propriété dans EventArgs qui spécifie l'objet d'origine et utilise "this" pour l'événement. Pour plus de détails, voir RoutedEventArgs.OriginalSource.

Questions connexes