L'ho fatto per un po ', ma non ho notato che ho utilizzato un new
ogni volta che rimuovo un gestore di eventi. Dovrei creare un nuovo oggetto?C# rimozione di un gestore di eventi
Fondamentalmente c'è una differenza tra 1 e 2?
ethernetdevice.PcapOnPacketArrival -= new SharpPcap.PacketArrivalEvent(ArrivalResponseHandler);
ethernetdevice.PcapOnPacketArrival -= ArrivalResponseHandler;
EDIT: Va bene questo è un duplicato. Mi dispiace per quello Risposta postata here.
Due delegati dello stesso tipo con gli stessi obiettivi, metodi e elenchi di chiamata sono considerati uguali.
Poiché un delegato è solo un riferimento a un metodo e un'istanza (facoltativa), il confronto di questi due dovrebbe essere sufficiente per determinare l'uguaglianza. – Botz3000
Sì, ma in generale, se si chiama 'new T()' due volte su un tipo di riferimento arbitrario, si otterrebbero due istanze diverse. Poiché ciò sembra non essere il caso per i delegati, deduco che il costruttore delegato stia internando automaticamente le istanze proprio come fa la classe 'Type'. –
internato: cosa significa? Grazie per la risposta. Questo tipo di risposta al dubbio che ho avuto. Mi stavo chiedendo di quello nuovo mentre sto creando una nuova istanza quando aggiungo un gestore e ne creo uno nuovo quando lo rimuovo. Molto strano. – Sharun