Анонимные обработчики событий и удаление

У меня довольно короткий вопрос об анонимных обработчиках событий:

Это код, который у меня есть:

public void AddTestControl(Control ctrl)
{
    ctrl.Disposed += (o, e) => { RemoveTestControl(ctrl); };
    ctrl.SomeEvent += _Control_SomeEvent;
}

public void RemoveTestControl(Control ctrl)
{
    ctrl.SomeEvent -= _Control_SomeEvent;
}

Этот код выше, хорошо, или код должен быть переписан для удаления обработчика событий Disposed? Что-то вроде этого:

public void AddTestControl(Control ctrl)
{
    ctrl.Disposed += _Control_Disposed;
    ctrl.SomeEvent += _Control_SomeEvent;
}

public void RemoveTestControl(Control ctrl)
{
    ctrl.Disposed -= _Control_Disposed;
    ctrl.SomeEvent -= _Control_SomeEvent;
}

Ответы на вопрос(3)

Ваш ответ на вопрос