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