Robiłem to przez jakiś czas, ale nie zauważyłem, że używam new
za każdym razem, gdy usuwam program obsługi zdarzeń. Czy mam tworzyć nowy obiekt?C# usuwanie programu obsługi zdarzeń
Zasadniczo istnieje różnica między 1 a 2?
ethernetdevice.PcapOnPacketArrival -= new SharpPcap.PacketArrivalEvent(ArrivalResponseHandler);
ethernetdevice.PcapOnPacketArrival -= ArrivalResponseHandler;
EDIT: Dobrze jest duplikatem. Przepraszam za to. Odpowiedź wysłana here.
Dwóch delegatów tego samego typu o tych samych celach, metodach i listach wywołań jest uznawanych za równe.
Ponieważ delegat jest tylko odwołaniem do metody i (opcjonalnie) instancji, porównywanie tych dwóch elementów powinno wystarczyć do określenia równości. – Botz3000
Tak, ale ogólnie rzecz ujmując, jeśli dwa razy wywołasz 'nowe T()' na arbitralnym typie odniesienia, otrzymasz dwie różne instancje. Ponieważ wydaje się, że nie ma to miejsca w przypadku delegatów, dedukuję, że konstruktor delegatów automatycznie interweniuje w instancjach, tak jak robi to klasa "Type". –
internowany - co to znaczy? Dziękuję za odpowiedź. Ten rodzaj odnosi się do wątpliwości, które miałem. Zastanawiam się nad tym nowym, ponieważ tworzę nową instancję, kiedy dodam procedurę obsługi i tworzę nową, kiedy ją usuwam. Bardzo dziwne. – Sharun