В классах, которые реализуют 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;
беспокоит меня. Я часто делал это, но я не уверен, что это нужно, ни хорошо. В конце концов, если вызывающий объект назначает одно и то же значение, я не хочу переназначать поле и, в частности, уведомлять моих подписчиков, что свойство изменилось, когда семантически оно не изменилось.
Кроме того, что мы можем сэкономить некоторый CPU / RAM / и т. Д., Освободив пользовательский интерфейс от обновления чего-либо, что, вероятно, будет выглядеть на экране / what_medium, что мы получим?
Могут ли некоторые люди принудительно выполнить обновление, переназначив одно и то же значение для свойства (НЕ ТО, ЧТО ЭТО БЫЛО ХОРОШЕЙ ПРАКТИКОЙ ОДНАКО)?
1. Должны ли мы сделать это или нет?
2. Почему?