C# 访问修饰符
# windos 2024-05-05 09:35 0 26 来源: 云博客 - public:最高访问级别,访问不受限制;
- protected:保护级别,只能自身以及派生类可以访问;
- internal:内部访问级别,只有是在同一程序集中才能访问;
- protected internal:内部保护级别,访问仅限于当前程序集或自身以及派生类访问;
- private:私有级别,最低访问级别,只能自身内部访问;
访问级别 | 类内部 | 派生类 | 程序集内 | 程序集外 |
默认 | ? | | | |
public | ? | ? | ? | ? |
protected | ? | ? | | |
internal | ? | ? | ? | |
protected internal | ? | ? | ? | |
private | ? | | | |
注意点
- 定义类变量、方法是,如果不写访问修饰符,默认为private;
- 定义类时,如果不写访问修饰符,则默认为internal;
- 声明枚举类型以及接口类型,如果不加访问修饰符,则默认为public;
- 在CRL中,从基类派生时,允许放宽但不允许收紧成员的可访问级别(之所以不能收紧对基类方法的访问,是因为CLR可以使得派生类转换为基类,并获取对基类方法的访问权),但是在C#中,原始成员和重写成员具有相同的访问级别;
- 基类的访问级别必须高于或者等于派生类的访问级别