Why do I see people implement properties like this?
What is the point of checking if the value is equal to the current value?
public double? Price
{
get
{
return _price;
}
set
{
if (_price == value)
return;
_price = value;
}
}
In this case it would be moot; however, in the case where there is an associated side-effect (typically an event), it avoids trivial events. For example:
Now, if we do:
we don’t get 4 events; we get at most 1 (maybe 0 if it is already 16).
In more complex examples there could be validation, pre-change actions and post-change actions. All of these can be avoided if you know that it isn’t actually a change.