(使用 VS2010。假设性能不是问题)。
我有一个特定的对象,它为其所有属性更改实现事件。有时需要将对象“重置”为其所有默认属性值。最简单的方法是简单地构造一个新对象:
Object1= New MyObject
但是,对于原始对象的任何事件订阅者来说,这等价于更改所有属性值。例如,如果订阅者只监听属性的更新A
,那么现在它也必须意识到新对象构造的可能性。这似乎为订阅者增加了额外的努力。(例如,也许我必须创建一个“NewObjectAssigned”事件,并且属性更改的订阅者也需要处理它。)
因此,我正在考虑使用 Reset 方法来装备对象,因此上面的代码更改为:
Object1.Reset
这样 Object1 引用永远不会改变,并且Reset
会手动将所有属性更改为默认值,从而触发所有 propertychanged 事件。但这也感觉不太对劲,与仅仅声明一个新对象相比也很麻烦。我想我需要一种方法来手动重置所有属性或引发所有更改的事件,这让我很恼火——我必须记住在向类中添加新属性时更新此方法。或者也许这并不像我想象的那样有问题。
这是一个足够简单的场景,我确信有一个最佳实践,无论是哪种方式。哪个更可取?