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ı yer alı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ı birleştirir ve bu yansıma adımının bazı performans sonuçları vardır. Çağrılar, yansımaya bağlı kalmayarak 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ın 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öntemin, 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. Uygulama, sağlanan genericHandler öğesini türe özgü temsilciye atamalı ve ardından bu işleyiciyi çağırmalıdır.

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 oluşturulur.

Şunlara uygulanır