1. ホーム
  2. c#

C#の「クロージャ」って何?重複] [重複] [重複

2023-08-17 14:33:43

質問

複製

.NETにおけるクロージャ

C#のクロージャとは?

どのように解決するのですか?

A 閉鎖 は,インラインのデリゲートである 匿名メソッド . A 閉鎖 は親メソッドにアタッチされます。つまり、親メソッドのボディで定義された変数を匿名メソッド内から参照することができます。素晴らしい ブログ記事 をご覧ください。

例です。

public Person FindById(int id)
{
    return this.Find(delegate(Person p)
    {
        return (p.Id == id);
    });
}

また マーティン・ファウラー または ジョン・スキート のブログで紹介しています。少なくともそのうちの1つからは、より詳細な内訳を知ることができるはずです......。

C# 6 の例です。

public Person FindById(int id)
{
    return this.Find(p => p.Id == id);
}

と同じ意味です。

public Person FindById(int id) => this.Find(p => p.Id == id);