【问题标题】:Why property is public and the setter is private为什么属性是公共的,而 setter 是私有的
【发布时间】:2023-04-04 21:07:02
【问题描述】:

我在某个网站上看到了这个例子:

public class infoData
{
    public FridgeProduct fridgeProduct { get; private set; }
}

如果冰箱产品字段被定义为公共并且可以通过定义从任何其他类访问,那么做私有设置器有什么意义?

【问题讨论】:

  • fridgeProduct 是一个属性,而不是一个字段。私有 setter 的作用是只能从类内部写入属性,而不能从外部写入。
  • @Michael 另请参阅Private Set or Private member?

标签: c# .net oop


【解决方案1】:

私有设置器的作用是,只能从类内部写入属性,而不能从外部写入。

请注意,set 访问器上的访问规范(私有)会覆盖属性的访问规范(公共)。正如 Aluan Haddad 在 cmets 中指出的那样,编译器强制单个访问器的可访问性不能比属性本身的可访问性限制更少。

【讨论】:

  • 感谢您的帖子,但它也被定义为公开。
  • 没有。在您的问题中,您写了“私人集;” - set 访问器上的这个“私有”覆盖了属性本身的“公共”。
  • @Michael 请注意,单个访问器的可访问性必须比属性本身的可访问性更具限制性。
猜你喜欢
  • 2017-04-02
  • 2017-12-09
  • 2019-02-18
  • 2011-05-11
  • 2017-06-27
  • 2018-11-12
  • 1970-01-01
  • 2015-07-15
  • 2018-07-17
相关资源
最近更新 更多