ラムダ式への道 その3
ようやくラムダ式に
C# 3.0から匿名関数の記法をより簡便にした記法が導入されました。それがラムダ式です。
式というくらいなので式を記述するように書けます。むろん今までの記法もそのまま使用することもできますが、もう全然楽なので今までの書き方は覚える必要が無いです。
サンプルコード
delegate string SomeFunction(int value); class SomeClass { private SomeFunction _someFunction; public SomeClass(SomeFunction function) { _someFunction = function; } public string DoSomething(int value) { return _someFunction(value); } } class Program { static void Main(string[] args) { var some = new SomeClass((v) => { return (v * v).ToString(); }); var value = 10; Console.WriteLine(some.DoSomething(value)); } }
SomeClass内のコンストラクタ部分のdelegate(int i)の部分がシンプルな記法に代わりました。さらに => の中の関数本体分が1行で済む場合はさらに省略できます。
var some = new SomeClass((v) => (v * v).ToString());
{ }も省略でき、returnも省略されたのでとてもすっきりした記述になります。ただその向こうでは前回、前々回に説明したような動作になっていることを理解しておくと飲み込みやすいかと思います。