Freigeben über


Der Custom-Modifizierer ist nicht gültig für Ereignisse, die ohne expliziten Delegattyp deklariert wurden

Aktualisiert: November 2007

'Custom' modifier is not valid on events declared without explicit delegate types

Im Unterschied zu Ereignissen, die nicht benutzerdefiniert sind, erfordert eine Custom Event-Deklaration eine As-Klausel nach dem Ereignisnamen, die den Delegattyp für das Ereignis explizit angibt.

Nicht benutzerdefinierte Ereignisse können entweder mit einer As-Klausel und einem expliziten Delegattyp oder mit einer Parameterliste direkt nach dem Ereignisnamen definiert werden.

Fehler-ID: BC31122

So beheben Sie diesen Fehler

  1. Definieren Sie einen Delegaten mit der gleichen Parameterliste wie das benutzerdefinierte Ereignis.

    Wenn z. B. das Custom Event mit Custom Event Test(ByVal sender As Object, ByVal i As Integer) definiert wurde, lautet der entsprechende Delegat wie folgt.

    Delegate Sub TestDelegate(ByVal sender As Object, ByVal i As Integer)
    
  2. Ersetzen Sie die Parameterliste des benutzerdefinierten Ereignisses durch eine As-Klausel, die den Delegattyp angibt.

    In der Fortsetzung des Beispiels wird die Custom Event-Deklaration wie folgt umgeschrieben.

    Custom Event Test As TestDelegate
    

Beispiel

In diesem Beispiel wird ein Custom Event deklariert und die erforderliche As-Klausel mit einem Delegattyp angegeben.

Delegate Sub TestDelegate(ByVal sender As Object, ByVal i As Integer)
Custom Event Test As TestDelegate
    AddHandler(ByVal value As TestDelegate)
        ' Code for adding an event handler goes here.
    End AddHandler

    RemoveHandler(ByVal value As TestDelegate)
        ' Code for removing an event handler goes here.
    End RemoveHandler

    RaiseEvent(ByVal sender As Object, ByVal i As Integer)
        ' Code for raising an event goes here.
    End RaiseEvent
End Event

Siehe auch

Referenz

Custom

<languageKeyword>Event</languageKeyword>-Anweisung

Delegate-Anweisung

Weitere Ressourcen

Ereignisse in Visual Basic