Should I always disconnect event handlers in the Dispose method?
I'm working in C# and my workplace has some code standards. One of them is that each event handler we connect (such as KeyDown ) must be disconnected in the Dispose method. Is there any good reason for that? Unless you expect the publisher of the event to outlive the subscriber, there's no reason to remove the event handler, no. This is one of those topics where folk lore has grown up. You really just need to think about it in normal terms: the publisher (e.g. the button) has a reference to the subscriber. If both the publisher and the subscriber will be eligible for garbage collection at the