BC30577: "AddressOf"-Operand muss der Name einer Methode (ohne Klammern) sein.

Der AddressOf Operator erstellt eine Prozedurdelegatinstanz, die auf eine bestimmte Prozedur verweist. Die Syntax lautet wie folgt:

AddressOf procedurename

Sie haben Klammern um das folgende AddressOfArgument eingefügt, wobei keines erforderlich ist.

Fehler-ID: BC30577

Beispiel

Im folgenden Beispiel wird bc30577 generiert:

Public Sub CountZeroToTen()
    For i = 0 To 10
        Console.WriteLine($"Counted: {i}")
        Threading.Thread.Sleep(500)
    Next
End Sub

Sub Main()
    ' Any of the following two lines generates bc30577.
    'Dim t As New Threading.Thread(AddressOf(CountZeroToTen))
    'Dim t As New Threading.Thread(AddressOf CountZeroToTen())
    t.Start()
End Sub

So beheben Sie diesen Fehler

  1. Entfernen Sie die Klammern um das Argument, AddressOf wie im folgenden Beispiel gezeigt:

    Public Sub CountZeroToTen()
        For i = 0 To 10
            Console.WriteLine($"Counted: {i}")
            Threading.Thread.Sleep(500)
        Next
    End Sub
    
    Sub Main()
        Dim t As New Threading.Thread(AddressOf CountZeroToTen)
        t.Start()
    End Sub
    
  2. Stellen Sie sicher, dass das Argument ein Methodenname ist.

Siehe auch