Qual é a maneira correta de cancelar a inscrição de eventos em c #?
Tenho uma classe de modelo com um evento que assino de outras classes. Quero me inscrever e cancelar a inscrição corretamente em cada class
Primeiramente, quero garantir que, no MyClass, cancele a inscrição apenas uma vez, mesmo que esse código esteja em alguns métodoSegundo, existem outras classes, exceto o MyClass, que usa o OnMyEvent, por isso não quero cancelar a inscrição involuntariamente do evento na class
MyClass(IModel model)
{
_model = model;
_model.OnMyEvent +=EventHandle;
}
Close()
{
_model.OnMyEvent -=EventHandle;
}
Disconnect()
{
//I want to check if OnMyEvent has already unsibscribed
//Moreover OnMyEvent is used in other classes and
//I don't want to mess up with it here
_model.OnMyEvent -=EventHandle;
}