匿名メソッドの使い道
こんな処理があるとする。
static void Main() { var shared = "なんか"; var array = new [] { "100", "200" }; foreach(var s in array) { // shared と s を使って処理する。 } }
このループ部分の処理が少しばかり複雑になったとして、この部分をメソッドとして切り離すとしよう。
普通にやるとこうなる。
static string shared = "なんか"; static void Main() { var array = new [] { "100", "200" }; foreach(var s in array) DoSomething(s); } static void DoSomething(string s) { // shared と s を使ってなんかする。 }
もしくは、このメソッドにshared変数を引数として渡すか。
でも、こうしてもいいんじゃね?
static void Main() { var shared = "なんか"; var array = new [] { "100", "200" }; Action<string> doSomething = s => { // shared と s を使ってなんかする。 }; foreach(var s in array) doSomething(s); }
メソッドを定義するのと同じような感覚で普通に使う。C#でもそろそろこういう使い方を当たり前のようにしてもいいよね?