By the far most common memory leak people introduce in .NET apps are caused by event handlers added to longer-lived objects. A common scenario is the INotifyCollectionChanged event listened to by an XAML control, with data coming from a collection provided by some app state. This will cause a very memory-consuming object like a UIElement to stay around in memory until the app closes. The recommended pattern to avoid this is by using WeakReference preferable wrapped in an event manager / event proxy class. However this can be quite a lot of code to write, and the implementation is not straight forward, and will still cause the small proxy hang around at least until the event fires again (if it ever does).
What if this pain could be fixed by exposing a syntax alternative to
+=? Now's your chance, the proposal has been accepted for discussion by Mads Torgersen.