我已经做了一段时间,但我没有注意到每次删除事件处理程序时都在使用 new
。我是否应该创建一个新对象?
基本上,1 和 2 有什么区别?
ethernetdevice.PcapOnPacketArrival -= new SharpPcap.PacketArrivalEvent(ArrivalResponseHandler);
ethernetdevice.PcapOnPacketArrival -= ArrivalResponseHandler;
编辑: 好的,这是一个重复的问题。抱歉。 答案发布在这里。
具有相同目标、方法和调用列表的同一类型的两个委托被认为是相等的。
new T()
,您将获得两个不同的实例。由于委托似乎不是这种情况,我推断委托构造函数自动对实例进行了内部处理,就像Type
类所做的那样。 - Christian HayterString.Intern
,否则不会在运行时进行实习。 - Christian Hayter