平等比较者与行动

时间:2018-07-31 14:06:17

标签: c# wpf properties

我正在使用一种比较项目中两个值的方法。

public static bool Compare<T>(T x, T y)
{
    return EqualityComparer<T>.Default.Equals(x, y);
}

我还有一种在项目中设置属性的方法。

protected bool SetField<T>(Action<T> property, T value, [CallerMemberName] string propertyName = null)
{
    property(value);
    RaisePropertyChanged(propertyName);
    return true;
}

当我尝试使用类似的方法比较Action<T> propertyT value中属性的当前值时

if (Compare(property, value))
{
    return false;
}

我得到一个错误。

  

不能从用法中推断出方法'NotifyPropertyChange.Compare(T,T)'的类型参数。尝试显式指定类型参数。

我之所以这样想是因为property是一个动作。

是否可以导出属性的值,以便可以与Compare方法一起使用?


示例用法

public int Prop {
    get => model.Prop;
    set => SetField(x => model.Prop = x, value);
}

0 个答案:

没有答案