RoutedEventArgs.InvokeEventHandler(Delegate, Object) Yöntem

Tanım

Türetilmiş bir sınıfta geçersiz kılındığında, olay işleyicilerini türe özgü bir şekilde çağırmanın bir yolunu sağlar ve bu da temel uygulama üzerindeki verimliliği artırabilir.

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)

Parametreler

genericHandler
Delegate

Çağrılacak genel işleyici / temsilci uygulaması.

genericTarget
Object

Sağlanan işleyicinin çağrılacağı hedef.

Örnekler

Aşağıda, uygulama için kullanılabilecek temel bir deseni gösteren sahte kod yer alır. Burada, MyRoutedEventHandler öğesinin bir alt sınıfıdır 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

Açıklamalar

Temel uygulama, işleyicinin tam anlamıyla RoutedEventHandlerolmadığı her durumda doğru işleyiciyi belirlemek için yansımayı içerir ve bu yansıma adımının bazı performans sonuçları vardır. Çağırmalar, yansımaya bağlı olmayarak daha verimli hale getirilebilir. Bu, bu yöntemi geçersiz kılmayı seçen yönlendirilmiş olay bağımsız değişkenleri sınıfı için kullanılabilir olmaya teşvik eden senaryodur. Uygulamanız türü güvenli işleyicileri çağırmaktan zaten sorumlu olması gerektiğinden, uygulamalar bu yöntemin tabanını çağırmamalıdır.

Devralanlara Notlar

Bu yöntem, temsilcilerinin daha verimli çağrılmasını sağlamak için türetilmiş olay veri sınıfları tarafından geçersiz kılınması amaçlanmıştır. Uygulamanın sağlanan genericHandler öğesini türe özgü temsilciye ataması ve ardından bu işleyiciyi çağırması gerekir.

Varsayılan uygulama sağlanan işleyiciyi çağırmaya çalışır ve bunu olarak RoutedEventHandleratamaya çalışır. genericHandler veya genericTarget olarak nullsağlanırsa, özel durumlar tetiklenir.

Şunlara uygulanır