C#6.0引入了定义只获取属性的功能:
public ICommand AddCommand { get; }
Run Code Online (Sandbox Code Playgroud)
现在,在定义下面的另一个属性时,ReSharper建议Auto-property可以变为get-only:
private List<Screenshot> Screenshots { get; set; }
Run Code Online (Sandbox Code Playgroud)
此外,ReSharper在定义私人吸气剂时并未说出一句话:
public ICommand AddCommand { get; private set; }
Run Code Online (Sandbox Code Playgroud)
公共get-only属性(例如第一个AddCommand),私有get-only属性(例如Screenshots属性)和public private setter属性(例如第二个AddCommand)之间的区别是什么?
我的WPF应用程序似乎并不关心它的公共属性(UICommand)是否包含私有的setter或者根本没有setter,但肯定必须有区别?