デリゲートとラムダ(lambda)
デリゲートとは
関数(メソッド)を入れるための型
以下のように「delegate ...」のように定義する。
が、この書き方はほとんどしない。
デリゲートは個別に宣言しなくても、 Action<T>、 Func<T, TResult> という汎用のデリゲートがあるので通常これを使う。
無名(匿名)関数とlambda(ラムダ)とは
名前のない関数のこと。
上記のようにデリゲートに名前付きで定義された関数を設定することもあるが、
ほとんどの場合は無名関数を用いてデリゲートに設定する
無名関数は以下のように「delegate ...」のように定義する。 が、この書き方も現在ほどんど使われず...
...無名関数はラムダ(lambda)で定義するのが一般的。
ラムダ(lambda)以下のように省略して記載することもできる。
- 引数の型は不要
- 引数が一つなら () は不要。
- 1行なら{}は不要
- 1行の場合 return は不要