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.When overridden in a derived class, provides a way to invoke event handlers in a type-specific way, which can increase efficiency over the base implementation.

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.The generic handler / delegate implementation to be invoked.

genericTarget
Object

Cible sur laquelle le gestionnaire fourni doit être appelé.The target on which the provided handler should be invoked.

Exemples

Voici un pseudocode qui illustre un modèle de base qui peut être utilisé pour l’implémentation.The following is pseudocode that illustrates a basic pattern that can be used for implementation. Ici, MyRoutedEventHandler est une sous-classe de RoutedEventHandler.Here, MyRoutedEventHandler is a subclass of 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 dans lequel le gestionnaire n’est pas littéralement RoutedEventHandler, et cette étape de réflexion a des conséquences sur les performances.The base implementation incorporates reflection to determine the right handler for any case where the handler is not literally RoutedEventHandler, and this reflection step does have some performance consequences. Les appels peuvent être rendus plus efficaces en ne reposant pas sur la réflexion.Invocations can be made more efficient by not relying on reflection. Il s’agit du scénario qui motive cette méthode comme étant disponible pour n’importe quelle classe d’arguments d’événement routé qui choisissent de la remplacer.This is the scenario that motivates this method being available for any routed event arguments class that choose to override it. Les implémentations ne doivent pas appeler la base de cette méthode, car votre implémentation doit déjà être responsable de l’appel des gestionnaires de type sécurisé.Implementations should not call the base for this method, because your implementation should already be responsible for invoking the type safe handlers.

Notes pour les héritiers

Cette méthode est destinée à être substituée par les classes de données d’événement dérivées pour fournir un appel plus efficace de leurs délégués.This method is intended to be overridden by derived event data classes to provide more efficient invocation of their delegates. L’implémentation doit effectuer un cast de l' genericHandler fourni vers le délégué spécifique au type, puis appeler ce gestionnaire.The implementation should cast the provided genericHandler to the type-specific delegate, and then invoke that handler.

L’implémentation par défaut tentera d’appeler le gestionnaire fourni, en tentant de le caster en tant que RoutedEventHandler.The default implementation will attempt to invoke the provided handler, attempting to cast it as RoutedEventHandler. Si genericHandler ou genericTarget est fourni en tant que null, les exceptions sont levées.If either genericHandler or genericTarget is provided as null, exceptions will be raised.

S’applique à