弱事件模式中的 RemoveHandler 有什么用?

What is the use of RemoveHandler in Weak Event Pattern?

根据Microsoft doc

The weak event pattern can be used whenever a listener needs to register for an event, but the listener does not explicitly know when to unregister.

illustrates that when using WeakEventManager, not explicitly calling RemoveHandler 不会 导致内存泄漏。

所以我的问题是,为什么方法 RemoveHandler 甚至在 WeakEventManager class 中?这不是完全没有必要吗?什么时候有必要?

Isn't it completely unnecessary?

没有。如果没有 RemoveHandler 方法,您应该如何(明确地)取消订阅?

When it becomes necessary?

每当您想明确取消订阅事件订阅时。

如果您不调用 RemoveHandler,事件处理将继续,直到垃圾收集器收集到侦听器。