gpt4 book ai didi

c# - 以下哪项是更正确的 INotifyPropertyChanged 实现?

转载 作者:太空宇宙 更新时间:2023-11-03 20:36:47 25 4
gpt4 key购买 nike

我经常想知道这个问题:对于任何属性 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 看起来更正确,因为如果属性实际上没有更改值,它不会引发事件。版本 A 不会有任何问题,它只是一个不必要的调用,不会更新任何 UI。

作为documentation states :

Notifies clients that a property value has changed.

关于c# - 以下哪项是更正确的 INotifyPropertyChanged 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4767179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com