c# - 事件取消订阅/重新订阅属性更改

标签 c# events

我经常这样写代码:

MyObject property;
MyObject Property
{
    get { return property; }
    set {
            if (property != null)
                property.Changed -= property_Changed; // unsubscribe from the old value
            property = value;
            property.Changed += property_Changed; // subscribe to the new value
        }
}

我正在寻找一种优雅的方式来自动取消订阅。 有什么想法吗?

最佳答案

这与您尝试实现的想法一样优雅。当然,您有一个逻辑错误,即 value 在传入时可能为 null,因此 property.Changed += property_Changed 会爆炸。

基本上,如果您分配一个新对象,您希望取消订阅旧元素的事件并附加到新元素事件。

关于c# - 事件取消订阅/重新订阅属性更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7195945/

相关文章:

c# - NET CORE MVC - 如何使用嵌套的多参数化路由

c# - 获取Azure中资源的绝对URL

c# - Monostate 模式在哪些情况下建模?

c# - 在 C# 中表示时间(不是日期和时间)

Javascript:处理多个动态元素的事件

events - 在 tkinter 中连续调用 <Configure> 事件

c# - ConcurrentBag的性能,多次读取,罕见的修改

javascript - IE中的鼠标位置

javascript - 如何避免在 React 组件中使用事件监听器无限重新渲染?

java - Spring Activity 与方面