在实现了INotifyPropertyChanged接口的类中,我经常看到以下模式:
public string FirstName
{
get { return _customer.FirstName; }
set
{
if (value == _customer.FirstName)
return;
_customer.FirstName = value;
base.OnPropertyChanged("FirstName");
}
}
准确地说,这些行
if (value == _customer.FirstName)
return;
这给我带来了困扰。虽然我经常这样做,但我不确定它是否必要或者好。毕竟,如果调用者分配了完全相同的值,我不想重新分配字段,尤其是当语义上没有改变时,通知我的订阅者属性已更改。
除了通过释放UI更新一些在屏幕/任何媒介上看起来可能相同的东西来节省一些CPU / RAM等资源外,我们还能得到什么?
有些人可以通过为属性重新分配相同的值(虽然这不是一个好的实践)来强制执行刷新吗?
1. 我们应该这样做还是不应该?
2. 为什么?