C#: Удаление объекта, который подписался на событияC#

Место общения программистов C#
Ответить
Anonymous
 C#: Удаление объекта, который подписался на события

Сообщение Anonymous »

Я работаю с классом, где это нужно будет динамически подписаться события, излучаемые многими другими объектами. Что -то вроде этого: < /p>

Код: Выделить всё

public delegate void MyEvent();
class MyOtherClass
{
public event MyEvent e1;
public event MyEvent e2;
}

class MyClass
{
public void Event1Handler() { }
public void Event2Handler() { }
public void Subscribe1(MyOtherClass obj)
{
obj.e1 += Event1Handler;
}
public void Subscribe2(MyOtherClass obj)
{
obj.e2 += Event2Handler;
}
}
В какой -то момент другая логика потребует, чтобы я удалил объект MyClass . Мой вопрос: как лучше всего это сделать? Насколько я понимаю, я не могу просто сбросить указатели на объект и позволить ему собрать мусор, потому что все еще будут ссылки на объект через различные подписки. Есть ли способ очистить все сразу, не отслеживая везде MyClass подписан?

Подробнее здесь: https://stackoverflow.com/questions/797 ... -to-events
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»