gpt4 book ai didi

c# - 什么时候应该触发 "property changed"事件?

转载 作者:行者123 更新时间:2023-11-30 19:04:13 25 4
gpt4 key购买 nike

当属性的实际值没有改变时触发“属性改变”事件是否合适?

public int SomeProperty
{
get { return this.mSomeProperty; }
set
{
this.mSomeProperty = value;
OnPropertyChanged(new PropertyChangedEventArgs("SomeProperty"));
}
}

即使新值与旧值相同,这也会触发事件。这是不好的做法吗?

最佳答案

最佳做法是除非值发生变化,否则不要引发事件。

在您的情况下,该属性只是一个“int”,因此它只是一个简单的相等性检查。如果您的属性(property)本身就是一个对象,则需要考虑更多情况

  1. 您再次设置相同的实例 - 没有属性更改

  2. 您设置具有不同值的不同实例 - 引发属性更改

  3. 您设置了一个不同但“相等”的实例(即,两个不同的对象具有相同的一组值,并且从您的应用程序的角度来看可以被视为等同的)- 引发属性更改。

最后一个是有争议的……当所有属性都相同时,属性真的发生了变化吗?如果有人使用该属性更改来订阅子类中的更改,他们将需要它知道取消订阅旧类并订阅新类。因此,我宁愿宣布这一变化也是错误的。

关于c# - 什么时候应该触发 "property changed"事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1093879/

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