事件是否使对象保持活动状态?

Does an event keep an object alive?

假设我有这个系统:

public class AppController {
    public event Action LanguageChangedEvent;
}

public class UIElement {

    private AppController _appController = (some initialization);

    public UIElement() {
        _appController.LanguageChangedEvent += OnLanguageChanged;
    }

    public void OnLanguageChanged() {
        // Do something
    }
}

由于事件保持活动状态,并且它引用了 UIElement class 中的方法,因此它引用了 UIElement 对象。

该引用是否使对象保持活动状态?

因为 OnLanguageChanged 是实例方法,_appController 持有对构造的 UIElement 实例的引用。

虽然 _appController 还活着,但 UIElement 实例也活着。