Нужно ли при освобождении объекта отвязывать обработчики?
В данном примере, нужно ли при финализации Test отвязывать MyEvent?
public class Test {
public Test(SomePersistObject obj) {
obj.SomeEvent += MyEvent;
}
private void MyEvent(object sender, EventArgs e) {
}
...
}
Здравствуйте, Аноним, Вы писали:
А>Нужно ли при освобождении объекта отвязывать обработчики?
А>В данном примере, нужно ли при финализации Test отвязывать MyEvent?
public class Test
{
public Test(SomePersistObject obj)
{
obj.SomeEventList.Add(this);
}
}
надо ли удалять класс Test из списка, чтобы его собрал GC?
Коротко:
1. Прочитать Рихтера
2. До прочтения — не лезть в дебри и не связываться с финализацией.
3. Если время жизни SomePersistObject _гарантированно_ не превышает время жизни Test — отписываться (например, в Dispose) не надо.
Удачи!