次の方法で共有


BC30577:'AddressOf' オペランドはメソッドの名前でなければなりません。かっこは不要です。

AddressOf 演算子は、特定のプロシージャを参照するプロシージャ デリゲート インスタンスを作成します。 構文は次のとおりです。

AddressOf procedurename

AddressOf の後に引数を囲むかっこを挿入していますが、ここでは何も必要ありません。

エラー ID: BC30577

次の例では bc30577 が生成されます。

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

このエラーを解決するには

  1. 次の例に示すように、AddressOf の後の引数を囲むかっこを削除します。

    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. 引数がメソッド名であることを確認してください。

関連項目