RoutedEventArgs.InvokeEventHandler(Delegate, Object) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
En cas de substitution dans une classe dérivée, fournit un moyen d’appeler des gestionnaires d’événements d’une manière spécifique au type, ce qui peut augmenter l’efficacité sur l’implémentation de base.
protected:
virtual void InvokeEventHandler(Delegate ^ genericHandler, System::Object ^ genericTarget);
protected virtual void InvokeEventHandler(Delegate genericHandler, object genericTarget);
abstract member InvokeEventHandler : Delegate * obj -> unit
override this.InvokeEventHandler : Delegate * obj -> unit
Protected Overridable Sub InvokeEventHandler (genericHandler As Delegate, genericTarget As Object)
Paramètres
- genericHandler
- Delegate
Implémentation de gestionnaire/délégué générique à appeler.
- genericTarget
- Object
Cible sur laquelle le gestionnaire fourni doit être appelé.
Exemples
Voici un pseudocode qui illustre un modèle de base qui peut être utilisé pour l’implémentation.
MyRoutedEventHandler Voici une sous-classe de RoutedEventHandler.
public class MyRoutedEventArgs : RoutedEventArgs
{
// other members omitted
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget) {
MyRoutedEventHandler handler = (MyRoutedEventHandler) genericHandler;
handler(genericTarget, this);
}
}
Public Class MyRoutedEventArgs
Inherits RoutedEventArgs
' other members omitted
Protected Overrides Sub InvokeEventHandler(ByVal genericHandler As System.Delegate, ByVal genericTarget As Object)
Dim handler As MyRoutedEventHandler = CType(genericHandler, MyRoutedEventHandler)
handler(genericTarget, Me)
End Sub
End Class
Remarques
L’implémentation de base incorpore la réflexion pour déterminer le gestionnaire approprié pour tout cas où le gestionnaire n’est pas littéralement RoutedEventHandler, et cette étape de réflexion a des conséquences sur les performances. Les appels peuvent être rendus plus efficaces en ne s’appuyant pas sur la réflexion. Il s’agit du scénario qui motive cette méthode à être disponible pour toutes les classes d’arguments d’événement routés qui choisissent de la remplacer. Les implémentations ne doivent pas appeler la base pour cette méthode, car votre implémentation doit déjà être chargée d’appeler les gestionnaires sécurisés de type.
Notes pour les héritiers
Cette méthode est destinée à être substituée par des classes de données d’événement dérivées pour fournir un appel plus efficace de leurs délégués. L’implémentation doit caster le délégué genericHandler spécifique au type, puis appeler ce gestionnaire.
L’implémentation par défaut tente d’appeler le gestionnaire fourni, en essayant de la convertir en RoutedEventHandler. Si l’une ou l’autre genericHandlergenericTarget est fournie null, des exceptions sont déclenchées.