В классах, реализующих 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. Почему?
Я думаю, что не согласен с тем, что ваш № 2 прав. В зависимости от того, что делается. Сравнение двух строк намного дороже, чем настройки ссылки на строку. Также вы добавили обработку всегда, даже если они разные. – galford13x
Чтобы добавить к моему предыдущему заявлению, вызов OnPropertyChanged может все же быть желательным в зависимости от намерения. Могут быть моменты, даже если значение не изменилось, вы можете захотеть ввести событие OnPropertyChanged только потому, что оно было введено. – galford13x