ラムダ式を用いて短いメソッドを簡潔に書く方法


はじめに

ラムダ式に対して理解度が乏しいので調べてみた。

ラムダ式とは

たまたま手元の本に紹介があったので読んでみた

戻り値を返す短いメソッドを、より簡潔に書く方法。
確かな力が身につくC#「超」入門 より

なるほどよくわからない。

とりあえずコンソールアプリケーションでサンプルコードを書いてみた。

Hello.World!をラムダ式で書いてみた

よくある教本にある書き方で記述すると下記のようになる。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lamdaStudy
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello. World!");
        }
    }
}

ラムダ式を用いると下記のようになる。

※HelloWorldメソッドからラムダ式で読み込む

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lamdaStudy
{
    class Program
    {
        static void Main(string[] args)
        {
            HelloWorld();
        }
        static void HelloWorld() => Console.WriteLine("Hello. World!");
    }
}

メソッドを呼び出そうとしなくても、エントリポイント(Mainメソッド)から呼び出せるらしい

Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lamdaStudy
{
    class Program
    {
        static void Main(string[] args) => Console.WriteLine("Hello. World!");

    }
}

なるほど。少しだが理解が深まった気がする。

参考

・確かな力が身につくC#「超」入門

・メソッドもラムダ式で簡略化できる
https://qiita.com/octopa0327/items/413e89bd57a17097dea8

・ラムダ式 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions¥

・構文:メソッドやプロパティをラムダ式で簡潔に実装するには?[C# 6.0/7.0]
http://www.atmarkit.co.jp/ait/articles/1606/01/news051.html