-1

为什么getter和setter的默认访问修饰符是public而不是private?

4

3 回答 3

5

属性的getset部分不默认为公共,它们默认为它们所属属性的可见性。与所有其他类型的成员一样,属性本身的默认可见性是私有的。

于 2012-09-22T06:38:06.493 回答
0

因为它C#是这样设计的。

  • 定义字段
  • 定义属性以访问该字段

因此,预期的默认行为是您创建字段private并以一种能够write and read从调用者(任意的,不仅是派生的)到字段的方式创建属性,因此属性 get/set方法(如果不是,则将属性公开没有任何意义)变成public.

这只是预期的默认行为,仅此而已。

于 2012-09-22T06:37:51.870 回答
0

我认为这是因为该属性有自己的访问修饰符,实际上描述了一组两种方法:SomeType getProp() 和 void setProp(SomeType)。默认情况下,这些方法被视为属性。但是如果你想改变它们的可见性,你可以使用额外的修饰符(例如 Prop{get;private set;})。

于 2012-09-22T06:40:49.247 回答