Lire en anglais

Partager via


BC30577 : L’opérande 'AddressOf' doit être le nom d’une méthode (sans parenthèses)

L’opérateur AddressOf crée une instance de délégué de procédure qui fait référence à une procédure spécifique. La syntaxe est la suivante :

VB
AddressOf procedurename

Vous avez inséré des parenthèses autour de l’argument qui suit AddressOf, alors qu’aucune parenthèse n’est nécessaire.

ID d’erreur : BC30577

Exemple

L’exemple suivant génère l’erreur bc30577 :

VB
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

Pour corriger cette erreur

  1. Supprimez les parenthèses autour de l’argument qui suit AddressOf comme illustré dans l’exemple suivant :

    VB
    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. Vérifiez que l’argument est un nom de méthode.

Voir aussi