Un delegate par défaut peut avoir plusieurs target! Du coup c’est un peu plus qu’un bête pointeur de fonction comme on connaissait en C/C++. voir aussi ici http://msdn.microsof…=vs.100%29.aspx
Bon, après tout pourquoi pas.
Par contre si je veux forcer mon delegate à n’avoir qu’une seule cible, je fais comment?
C’est à dire que je voudrais lors de la compilation que le
_myFunction += Test1; génère une erreur et que seul
Euh, les delegates ça fait quand même partie des bases de ce langage. Dès que tu as besoin d’un observer (nottamment dès que tu fais un peu de GUI), tu utilises des delegates. C’est fait pour ça et c’est bien pratique (même si pas forcément intuitif au début).
Moui, mais pour la GUI (surtout pour WinForms) tu as les EventHandler génériques et depuis ça fait un moment que je n’ai pas explicitement déclaré un delegate.
Je dis pas que les delegate son inutiles, loin de là, mais simplement que tomber sur une problématique de limiter le nombre de target d’un delegate en débutant ça me semblait un peu étrange.
Vu sous cet angle, soit, c’etait probablement pour faire du code crade, genre j’ajoute mes handlers sans jamais les enlever mais le truc derriere s’assure qu’il n’y en a toujours qu’un.
Ou alors un truc vachement plus complexe et le monsieur est tres humble, parce que c’est pas expert, mais pas debutant non plus. Apres, il a du trouver sa reponse rapidos, dans la mesure ou il n’a pas reposté ici, et ou l’implé d’un multicast delegate est a peu pres super simple et developpée partout.
Oui c’est pas un truc de debutant, c’est plus souvent un truc que les gens qui font du C++ et qui se mettent au C# ont envie d’utiliser partout et ca fini plus en anti-pattern qu’autre chose…