He estado haciendo esto por un tiempo, pero no he notado que he estado usando un new
cada vez que elimino un controlador de eventos. ¿Se supone que estoy creando un nuevo objeto?C# eliminación de un controlador de eventos
Básicamente, ¿hay una diferencia entre 1 y 2?
ethernetdevice.PcapOnPacketArrival -= new SharpPcap.PacketArrivalEvent(ArrivalResponseHandler);
ethernetdevice.PcapOnPacketArrival -= ArrivalResponseHandler;
EDIT: bien este es un duplicado. Lo siento por eso. Responder publicado here.
Dos delegados del mismo tipo con los mismos objetivos, métodos y listas de invocación se consideran iguales.
Dado que un delegado es solo una referencia a un método y una instancia (opcional), la comparación de estos dos debería ser suficiente para determinar la igualdad. – Botz3000
Sí, pero en general, si llama dos veces '' nuevo T() 'en un tipo de referencia arbitrario, obtendrá dos instancias diferentes. Dado que este no parece ser el caso para los delegados, deduzco que el constructor delegado está internando automáticamente las instancias al igual que la clase 'Tipo'. –
interno, ¿qué significa eso? Gracias por la respuesta. Este tipo de respuesta aborda la duda que tenía. Me estaba preguntando acerca de eso nuevo ya que estoy creando una nueva instancia cuando agrego un controlador y creo uno nuevo cuando lo elimino. Muy raro. – Sharun