systembankスタッフのブログ

システムバンクスタッフのブログです。

ラムダ式への道 その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も省略されたのでとてもすっきりした記述になります。ただその向こうでは前回、前々回に説明したような動作になっていることを理解しておくと飲み込みやすいかと思います。

次回

ラムダ式を使いやすくするためにC# 3.0以降で拡張されたそのほかの使い方を説明しようと思います。