属性 带有 setter 和 getter 的访问修饰符

Property access modifiers with setters and getters

我有以下 C# 代码:

class C
{
    public int A { get; private set; }
}

在 属性 类型和名称(本例中为 'public')之前放置的访问修饰符如何与指定的 getter 和 setter 访问修饰符相关?

表示这个属性的getterpublic,但是setterprivate——你可以在外面读这个属性 class 或程序集,但您只能在 class 内设置此 属性 声明。

如果您没有为 getter 或 setter 指定修饰符,那么它们将在 属性 名称之前有修饰符:

protected int Value {get; set;}

意味着你只能在这个class或者继承这个的class里面读写这个属性——gettersetter有修饰符 protected.

您可以根据需要限制 属性 的 gettersetter,但 gettersetter 的修饰符应该比之前的修饰符更严格属性 姓名。

此外,您不能同时限制 gettersetter,因为在这种情况下,属性 名称之前的修饰符将没有任何意义。您可以仅限制 getter 或仅 setter.