用作 INotifyPropertyChanged 属性 时双重比较安全吗?

Is double comparsion safe when used as INotifyPropertyChanged property?

通常你不能确定检查两个不同双打是否相等。使用 INotifyPropertyChange 时双 属性 怎么样?

以下可能会给 if (this.optionXYZ != value) 带来任何问题吗?或者这个可以安全使用吗?

private double optionXYZ;
public double OptionXYZ
{
    get { return this.optionXYZ; }
    set
    {
        if (this.optionXYZ != value)
        {
            this.optionXYZ = value;
            OnPropertyChanged(PropertyOf<OptionSettings>.Resolve(x => x.OptionXYZ));
        }
    }

}

double比较来看,这一行:

if (this.optionXYZ != value)

没有多大意义,因为浮点数的性质和特殊值,如 NaN

但这里唯一的 "problem" 是 PropertyChanged 事件的额外加注。其实这不是问题,和"safety".

没有关系

关于您的示例 - 我会完全删除相等性检查。