我有以下C#代码:
class C
{
public int A { get; private set; }
}
访问修饰符如何放置在属性类型和名称(本例中为“public”)之前与getter和setter的指定访问修饰符相关?
答案 0 :(得分:4)
这意味着此属性的getter
为public
,但setter
为private
- 您可以在类或程序集外读取此属性,但只能设置它在类中声明了这个属性。
如果你没有为getter或setter指定修饰符,那么它们将在属性名称之前有修饰符:
protected int Value {get; set;}
这意味着您只能在此类或继承此类的类中读取和写入此属性 - getter
和setter
具有修饰符protected
。
您可以根据需要限制属性的getter
或setter
,但getter
或setter
的修饰符应比属性名称前的修饰符更严格。
此外,您不能同时限制getter
和setter
,因为在这种情况下,属性名称之前的修饰符将没有某些含义。您只能限制getter
或仅限setter
。