ラムダその3

ラムダ:
 http://d.hatena.ne.jp/levin_gsp/20071127/1196143533
ラムダその2:
 http://d.hatena.ne.jp/levin_gsp/20080415/1208260855
 
前回、ラムダ式を実践してみようと思って挫折した。
Visual Studio 2008 Express Edition をインストールしてみたため、再びチャレンジ。
経緯、その他見解等は過去のエントリを参照してほしい。
 

using System;
 
namespace sample02
{
    /*
     * ラムダ式 (lambda expression) 入門用クラス
     */
    class Program
    {
        /*
         * x と y を渡すためのデリゲートを定義
         */
        delegate int SampleDelegate(int x, int y);
        
        /*
         * デリゲートを引数指定して内部実行後、標準出力するメソッド
         */
        private static void Calculate(int x, int y, SampleDelegate calculator)
        {
            Console.WriteLine(calculator(x,y));
        }
        
        /*
         * コールしてみる。
         * 第三引数はデリゲートなので、ここにラムダを記述
         * 
         * 下記の場合は結果が「11」となる。
         */
        static void Main(string[] args)
        {
            Calculate(3, 8, (x, y) => x+y );
            
            /* デリゲートで書くとこうなる。出力は同じく「11」 */
            Calculate(3, 8, delegate(int x, int y) { return x + y; }); 
        }
    }
}

 
@IT記事に倣って、デリゲートでも同じ結果となる処理を書いてみた。
確かにこれは慣れれば強力な武器になりそうだ。