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 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.

S’applique à