2009年10月08日

【ラムダ式】 はじめの一歩

まずは最も簡単なラムダ式のサンプルコードを見てみましょう。
以下のコードの4行目「() => Console.WriteLine("Hello, World!!");」がラムダ式と呼ばれるものです。
ラムダ式は4行目で定義され、7行目で実行されています。
つまり、action()の行を実行した時に、「Hello, World!!」と出力されるのです。
なぜ、ラムダ式はメソッドのように呼び出して実行できるのでしょうか?

static void Main(string[] args)
{
    // ラムダ式の定義
    Action action = () => Console.WriteLine("Hello, World!!");

    // ラムダ式を実行
    action();

    // <結果>
    // Hello, World!!
}

ラムダ式とは、簡単に言うとメソッド内で定義された即席のメソッドのことです。
いちいちメソッド名を付けて定義するまでも無い、簡易的なメソッドをその場で作って使用します。
上記のサンプルコードでは、4行目でactionという変数に即席メソッドを格納し、7行目でそのメソッドを呼び出しているのです。(C言語で言う関数ポインタに格納された関数を呼び出すのに似ています)
C# 2.0までは匿名メソッド(delegateキーワードで定義)と呼ばれる機能で同じことが出来たのですが、 ラムダ式では同じ機能をより簡潔に書けるようになっています。
匿名メソッドは定義にも手間がかかるし、ソースコードが長くなりがちなので今ひとつ使い辛いものでしたが、 ラムダ式は記述も短くなり、非常に使いやすいものになっています。記述に見慣れてしまえばですが。
C/C++やJavaからC#へ移行してきた人にとってラムダ式の、
() => 」このような記述は、奇妙以外の何者でもないでしょう。(私もそうでした)
このような分かりにくい機能をわざわざ追加したのは、それ相応のメリットがあると考えたからでしょう。
ラムダ式のメリットとは何なのか?次項で、もう少し深く掘り下げます。

ラムダ式の次の記事へ
ラベル:ラムダ式
posted by 吾一 at 19:28| 2. ラムダ式 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。