我的代码具有很多这样的构造:
ParamViewModel[] _btns;
public ParamViewModel[] Btns
{
get => _btns;
set => SetProperty(ref _btns, value);
}
有没有办法使用泛型来做到这一点,以使我能够减少代码行,因为它们都是相同的,只是数据类型,字符串,整数,颜色等不同而已。
以下是SetProperty的功能:
public class ObservableObject : INotifyPropertyChanged
{
protected virtual bool SetProperty<T>(
ref T backingStore, T value,
[CallerMemberName]string propertyName = "",
Action onChanged = null)
{
if (EqualityComparer<T>.Default.Equals(backingStore, value))
return false;
backingStore = value;
onChanged?.Invoke();
OnPropertyChanged(propertyName);
return true;
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName]string propertyName = "") =>
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
答案 0 :(得分:0)
简单,惯用的获取和设置是这个
ParamViewModel[] Btns {get;set;}
你不能比这更紧