Cela fait un moment que je fais cela, mais je n'ai pas remarqué que j'utilise un new
chaque fois que j'enlève un gestionnaire d'événements. Suis-je censé créer un nouvel objet?C# supprimer un gestionnaire d'événements
Fondamentalement, y a-t-il une différence entre 1 et 2?
ethernetdevice.PcapOnPacketArrival -= new SharpPcap.PacketArrivalEvent(ArrivalResponseHandler);
ethernetdevice.PcapOnPacketArrival -= ArrivalResponseHandler;
EDIT: Ok c'est un doublon. Désolé pour ça. Réponse here Deux délégués du même type ayant les mêmes cibles, méthodes et listes d'invocation sont considérés comme égaux.
Puisqu'un délégué est juste une référence à une méthode et une instance (facultative), la comparaison de ces deux devrait être suffisant pour déterminer l'égalité. – Botz3000
Oui, mais de manière générale, si vous appelez 'new T()' deux fois avec un type de référence arbitraire, vous obtiendrez deux instances différentes. Puisque cela ne semble pas être le cas pour les délégués, je déduis que le constructeur délégué est automatiquement l'internement des instances, tout comme le fait la classe 'Type'. –
interné - qu'est-ce que cela signifie? Merci d'avoir répondu. Ce genre de réponses au doute que j'avais. Je me demandais à propos de ce nouveau comme je crée une nouvelle instance lorsque j'ajoute un gestionnaire et en créer un nouveau quand je l'enlève. Très étrange. – Sharun