1
我很想知道这个问题:INotifyPropertyChanged
对于任何属性Foo
的以下两个实现中哪一个更好,甚至更正确?哪些是INotifyPropertyChanged更正确的实现?
/* version A: */ | /* version B: */
private bool foo; | private bool foo;
public bool Foo | public bool Foo
{ | {
set | set
{ | {
| if (value != foo)
| {
foo = value; | foo = value;
OnPropertyChanged("Foo"); | OnPropertyChanged("Foo");
| }
} | }
} | }
(我省略了一切,这是不相关的这个问题。)
我怀疑它应该是版本B上的权利,因为它可以防止不必要的触发事件。但是,是否有这些相同的错过事件会导致问题?
您认为B可能会导致问题,即订阅者希望每次将属性*写入*(而不是*更改为值*)时触发事件? – stakx 2011-01-22 09:56:18