class A
{
public event EventHandler AEvent;
}
class B
{
private A _foo;
private int _bar;
public void AttachToAEvent()
{
_foo.AEvent += delegate()
{
...
UseBar(_bar);
...
}
}
}
Так как delegate
захватывает переменную this._bar
, то неявно ли он удерживает экземпляр B
? Будет ли на экземпляр B
ссылаться через обработчик события и захваченную переменную экземпляр A
?
Будет ли иначе, если _bar
будет локальной переменной метода AttachToAEvent
?
Поскольку в моем случае экземпляр A
живет намного дольше и намного меньше, чем экземпляр B
, я опасаюсь вызвать "утечку памяти", делая это.