匿名メソッドがオブジェクトのフィールドをキャプチャする場合、そのオブジェクト全体がキャプチャされ、ガーバージ収集されませんか?
したがって、以下はスニペットです。私が知りたいのは、匿名メソッドがリストから明示的に削除されていない限り、SessionKeeperがオブジェクトfを保持するかどうかです。
class Foo
{
public String State { get; set; }
public void KeepState()
{
SessionKeeper.Singleton.Add(delegate
{
//do something with this.State
});
}
}
Foo f = new Foo();
f.KeepState();