如果一个匿名方法捕获了一个对象的一个字段,整个对象会被捕获而不是被垃圾收集吗?
所以下面是一个片段,我想知道的是,只要匿名方法没有从列表中显式删除,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();