Existe-t-il un moyen d'ajouter et de supprimer des gestionnaires d'événements dans C# en transmettant les opérateurs + = et - = comme arguments, donc une seule méthode pourrait le faire?ajouter/supprimer des gestionnaires d'événements C# avec une seule méthode
J'essaie d'éviter la répétition:
AttachHandlers()
{
event1 += handler1;
event2 += handler2;
// etc...
}
DetachHandlers()
{
event1 -= handler1;
event2 -= handler2;
// etc...
}
ou
AttachDetachHandlers(bool attach)
{
if (attach)
{
event1 += handler1;
event2 += handler2;
// etc...
}
else
{
event1 -= handler1;
event2 -= handler2;
}
}
Au lieu de cela, je voudrais écrire quelque chose comme ceci:
AttachDetachHandlers(operator addRemove)
{
addRemove(event1, handler1);
addRemove(event2, handler2);
// etc...
}
être utilisé avec quelque chose comme :
AttachDetachHandlers(+=);
Idéalement, cela devrait fonctionner avec les gestionnaires d'événements & ayant des signatures différentes (comme + = & - = do).
Pourquoi ne pas simplement utiliser une instruction if basée sur un booléen? – JuanR
@Juan: parce qu'il est toujours aussi répétitif (ajouté un exemple à la question) – Jimmy
@Sinatr Je ne veux pas détacher les gestionnaires immédiatement après les avoir attachés. Je veux une seule fonction pour remplacer AttachHandlers() et DetachHandlers() – Jimmy