有没有一种通用的编码get的方法;组;在C#中

时间:2018-10-08 23:10:45

标签: c#

我的代码具有很多这样的构造:

    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));

}

1 个答案:

答案 0 :(得分:0)

简单,惯用的获取和设置是这个

ParamViewModel[] Btns {get;set;}

你不能比这更紧