我已經這樣做了一段時間,但我沒有注意到,我每次刪除事件處理程序時都使用了new
。我應該創造一個新的對象?C#刪除事件處理程序
基本上1和2之間有區別嗎?
ethernetdevice.PcapOnPacketArrival -= new SharpPcap.PacketArrivalEvent(ArrivalResponseHandler);
ethernetdevice.PcapOnPacketArrival -= ArrivalResponseHandler;
編輯: 好吧,這是一個重複。對於那個很抱歉。 答覆已發過標籤here。
具有相同目標,方法和調用列表的相同類型的兩個代表被認爲是相等的。
由於委託只是對方法和(可選)實例的引用,所以比較這兩個方法應該足以確定相等性。 – Botz3000 2009-09-28 09:55:38
是的,但一般來說,如果您在任意引用類型上調用'new T()'兩次,您會得到兩個不同的實例。由於這對於委託人來說似乎不是這樣,我推斷委託構造函數會像'Type'類一樣自動實例化實例。 – 2009-09-28 10:00:23
實習 - 這是什麼意思?感謝你的回答。這種解決我的疑問。當我添加處理程序並在刪除處理程序時創建一個新處理程序時,我對這個新程序感到疑惑,因爲我正在創建一個新的程序。很奇怪。 – Sharun 2009-09-28 10:10:31