考虑到C#9甚至C#10的特性,按如下方式编写属性最简单、最简洁的形式是什么?
是否可以不使用背景字段?
string fName;
public string Name { get { return fName; } set { SetPropertyValue<string>(nameof(Name), ref fName, value); } }
public string Name {get;}
应该是你能做的最简单的。
如果你需要对WPFsPropertyChanged的支持,我通常会做
private string name;
public string Name {get => name; set => Set(ref name, value); }
private void Set<T>(ref T field, T value, [CallerMemberName]string caller = "")
{
field = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(caller ));
}
(可选(在Set方法中添加比较,以便仅在新值与旧值不相等时引发事件。据我所知,c#9或c#10中没有任何新的东西可以改进这一点。