web-dev-qa-db-ja.com

C#の「クロージャ」とは何ですか?

複製する

。NETのクロージャ

C#のクロージャーとは何ですか?

64
Shane Scott

C#の closure はインラインデリゲートの形式をとります/ 匿名メソッドclosure は親メソッドに付加されます。つまり、親のメソッド本体で定義された変数は、匿名メソッド内から参照できます。素晴らしい ブログ投稿 があります。

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

Martin Fowler または Jon Skeet のブログもご覧ください。少なくともそれらの1つからより詳細な内訳を取得できると確信しています。..

94
cgreeno