複製
C#のクロージャとは何ですか?
C#でのクロージャは、インラインデリゲート/匿名メソッドの形式を取ります。親メソッドにはクロージャが付加されています。つまり、親のメソッド本体で定義された変数は、匿名メソッド内から参照できます。ここにそれについての素晴らしいブログ投稿があります。
例:
public Person FindById(int id)
{
return this.Find(delegate(Person p)
{
return (p.Id == id);
});
}
MartinFowlerやJonSkeetのブログもご覧ください。少なくともそのうちの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);