Partager via


RoutedEventArgs.InvokeEventHandler(Delegate, Object) Méthode

Définition

En cas de substitution dans une classe dérivée, fournit un moyen d’appeler des gestionnaires d’événements d’une manière propre au type, ce qui peut améliorer l’efficacité par rapport à 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 générique/délégué à 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 disponible pour toute classe d’arguments d’événement routé qui choisit de la remplacer. Les implémentations ne doivent pas appeler la base de cette méthode, car votre implémentation doit déjà être chargée d’appeler les gestionnaires de type sécurisés.

Notes pour les héritiers

Cette méthode est destinée à être remplacée par des classes de données d’événements dérivées pour fournir une 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 tentant de la convertir en RoutedEventHandler. Si l’un ou genericTarget l’autre genericHandler est fourni en tant que null, les exceptions seront levées.

S’applique à