読者です 読者をやめる 読者になる 読者になる

RunningCSharp

.net中心の開発話。記事は個人の見解であり、所属組織を代表するものてはありません。

C#:refの引数を含むデリゲートに入れるラムダ式では型を省略できない話

文法に関する細かいメモ。

delegate void myDelegate(ref int test);

static void Main(string[] args)
{
    myDelegate del = (ref i) => i++;
}

上記のコードは構文エラーが出てしまいます。 引数にrefがある場合は、型を省略できないようです。

static void Main(string[] args)
{
    myDelegate del = (ref int i) => i++;
}

delegate void myDelegate(ref int test);

上記コードは正常にビルドが通ります。 略式の書き方に慣れすぎたせいか、ちょっと引っかかってしまいました…