C#中的访问修饰符有以下六种:
- public:同一程序集和和引用该程序集的所有代码都可访问。public成员可访问级别由该类型本身的级别决定。
- private:只有同一类中的成员可以访问
- protected:同一类和派生类中的代码可以访问
- internal:同一程序集中的代码可以访问。
- protected internal:同一程序集或不同程序集中的派生类可以访问。
- private protected:同一程序集中的派生类可以访问。
其中常用的主要是前四种,下面是微软docs的一个对照表
默认情况
如果不指定访问修饰符,类默认为internal,类成员默认为private,接口默认为internal,接口成员默认为public。
其他情况
派生类不能具有高于基类的访问级别。
通常情况下,成员的 可访问性不高于包含它的类。但是,如果内部类的 public
成员实现了接口方法或替代了在公共基类中定义的虚拟方法,则可从该程序集的外部访问该成员。