我最近开始研究MVVM设计模式中命令的使用,并注意到在我在线上找到的大多数示例中,在教程,书籍等中,VM中的ICommand
对象都使用了private set
的自动属性设置器。这些相同的示例还显示ICommand
对象正在VM构造函数中实例化和分配,如果没有此自动属性设置器,这是允许的。因此,我的问题是,将private set
与ICommand对象一起使用的目的是什么(假设在构建VM之后没有重新分配ICommand对象)?
之所以提出这一问题,是因为Visual Studio建议我从这些private set
对象中删除ICommand
,并且我想知道是否有任何理由不遵循该建议。
编辑: 这不是建议的副本。提议的重复项确实清楚地说明了私有集的用法,但未评论是否存在与ICommand相关的特质,这是我提出问题的目的。多亏了我收到的答复,我才知道没有,这仅仅是C#版本中的区别。
答案 0 :(得分:0)
对于低于C#6的C#版本,自动属性需要专用设置器。从C#6开始,自动属性的私有设置器不是必须的,如果在构造函数或属性初始化程序中分配了属性,则可以将其省略。 Here是一个很好的解释。