[VB.NET] 無名関数(ラムダ式)で、Func(戻り値無し) がコンパイルエラーになる

戻り値が不要な場合は Func ではなく、Action を使用します。

エラーの原因

Func は 関数の戻り値が必要な場合に使用します。戻り値が不要な場合は「Action」を使用します。

エラー発生例

'コンパイルエラー
'BC36625 'Func()' は、デリゲート型でないため、ラムダ式を 'Func()' に変換できません。
'BC32042 'Func(Of In T1, In T2, In T3, In T4, In T5, In T6, In T7, In T8, In T9, Out TResult)' の型引数が少なすぎます。
Dim fnc As Func() = Sub()
                        'code
                    End Sub

対処方法

Func() を Action に置き換えます。
'Func ではなく、Action を使用する
Dim act As Action = Sub()
                        'code
                    End Sub

検証環境

関連ページ