Events von Lazy(Of <T>) handeln

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Dasive.

    Events von Lazy(Of <T>) handeln

    Wie kann man Events handeln, die von einem "Lazy"-Objekt ausgelöst werden?

    Beispiel mit Lazy ("Controller" ist ein Beispielobjekt):
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim LazyController As New Lazy(Of Controller)
    2. Private Sub EventHander() Handles LazyController.Value.<Event>
    3. End Sub

    Das Funktioniert so nicht


    Beispiel ohne Lazy ("Controller" ist ein Beispielobjekt):
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim Controller As New Controller
    2. Private Sub EventHander() Handles Controller.<Event>
    3. End Sub

    Das Funktioniert so
    Hi
    für die Verwendung des Lazy-Objekts musst du ja im Konstruktor einen Delegaten angeben. Füge im Delegaten einfach die Eventhandler per AddHandler an die Instanz an:
    AddHandler <Ereignis>, <Delegat>
    z.B.

    VB.NET-Quellcode

    1. AddHandler MeineKlasse.MeinEvent, AddressOf MeinHandler
    2. AddHandler MeineKlasse.MeinEvent, Sub(sender, e) MessageBox.Show(DirectCast(sender,MeineKlasse).Name)


    Gruß
    ~blaze~