我正在使用最新的 UWP(和 Windows Template Studio)方法构建应用程序。有一个聪明的类叫做"Observable"。所以,这只是背景。我想修改第 13 行的条件,以便双打的可忽略不计的更改不会标记属性更改。所以,我增加了第 13 行并创建了一个名为 NegligibleChange 的新函数......
protected void Set<T>(ref T storage, T value, [CallerMemberName]string propertyName = null)
{
if ((typeof(T) == typeof(double) && NegligibleChange(storage, value)) || Equals(storage, value))
{
return;
}
storage = value;
OnPropertyChanged(propertyName);
}
private bool NegligibleChange(double x, double y)
{
return Math.Abs(x - y) <= 1e-10;
}
public void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
这不起作用,因为它说“无法将 T 转换为双精度”。有没有办法来解决这个问题?