RoutedEventArgs.InvokeEventHandler(Delegate, Object) RoutedEventArgs.InvokeEventHandler(Delegate, Object) RoutedEventArgs.InvokeEventHandler(Delegate, Object) RoutedEventArgs.InvokeEventHandler(Delegate, Object) Method

Definición

Cuando se invalida en una clase derivada, proporciona una manera de invocar controladores de eventos de una forma específica del tipo, lo que puede aumentar la eficacia en la implementación 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)

Parámetros

genericHandler
Delegate Delegate Delegate Delegate

Implementación del controlador/delegado genérico que se va a invocar.The generic handler / delegate implementation to be invoked.

genericTarget
Object Object Object Object

El destino en el que se debe invocar el controlador proporcionado.The target on which the provided handler should be invoked.

Ejemplos

A continuación se muestra un pseudocódigo que ilustra un patrón básico que se puede utilizar para la implementación.The following is pseudocode that illustrates a basic pattern that can be used for implementation. Aquí, MyRoutedEventHandler es una subclase 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

Comentarios

La implementación base incorpora reflexión para determinar el controlador adecuado para cualquier caso en el que el controlador no RoutedEventHandlersea literalmente, y este paso de reflexión tiene algunas consecuencias en el rendimiento.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. Las invocaciones se pueden hacer más eficaces si no confían en la reflexión.Invocations can be made more efficient by not relying on reflection. Este es el escenario que motiva que este método esté disponible para cualquier clase de argumentos de evento enrutado que decida invalidarlo.This is the scenario that motivates this method being available for any routed event arguments class that choose to override it. Las implementaciones no deben llamar a la base para este método, porque su implementación ya debe ser responsable de invocar los controladores seguros de tipos.Implementations should not call the base for this method, because your implementation should already be responsible for invoking the type safe handlers.

Notas a los desarrolladores de herederos

Este método está pensado para que lo invalide las clases de datos de evento derivadas para proporcionar una invocación más eficaz de sus delegados.This method is intended to be overridden by derived event data classes to provide more efficient invocation of their delegates. La implementación debe convertir el proporcionado genericHandler al delegado específico del tipo y, a continuación, invocar ese controlador.The implementation should cast the provided genericHandler to the type-specific delegate, and then invoke that handler.

La implementación predeterminada intentará invocar el controlador proporcionado, intentando convertirlo como RoutedEventHandler.The default implementation will attempt to invoke the provided handler, attempting to cast it as RoutedEventHandler. Si se proporciona genericTarget nullo como, se producirán excepciones. genericHandlerIf either genericHandler or genericTarget is provided as null, exceptions will be raised.

Se aplica a