[C#] 無名関数(ラムダ式)で、Func<void> がコンパイルエラー(キーワード void はこのコンテキストで使用できません。)になる

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

エラーの原因

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

エラー発生例

// コンパイルエラー
// CS1547  キーワード void はこのコンテキストで使用できません。
Func<void> fnc = () =>
{
    /* code */
};

対処方法

Func<void> を Action に置き換えます。
// Func ではなく、Action を使用する
Action act = () =>
{
    /* code */
};

検証環境

関連ページ