C#类的访问修饰符
C#类的访问修饰符默认情况下,类声明为内部的,即只有当前工程中的代码才能访问它。可以用internal访问修饰符关键字显式指定,但这不是必须的,类在定义时默认为此类型的类。但是C# 方法默认访问级别: private。
一、方法或者属性的修饰符的访问级别
访问修饰符 |
意 义 |
public |
访问不受限制,可以类内和任何类外的代码中访问 |
protected |
可访问域限定于类内或从该类派生的类内 |
internal |
可访问域限定于类所在的程序集内 |
protected internal |
protected或者internal,即可访问域限定于类所在的程序或那些由它所属的类派生的类内 |
private |
可访问域限定于它所属的类内 |
二、类定义中可以使用的访问修饰符组合
1、none or internal 类只能在当前工程中访问
2、public 类可以在任何地方访问
3、abstract or internal abstract 类只能在当前工程中访问,不能实例化,只能继承
4、public abstract 类可以在任何地方访问,不能实例化,只能继承
5、sealed or internal sealed 类只能在当前工程中访问,不能派生,只能实例化
6、public sealed 类可以在任何地方访问,不能派生,只能实例化
三、C#中方法、类等的默认访问修饰符
1、接口(interface)
接口成员访问修饰符默认为public,且不能显示使用访问修饰符。
2、类(class)
(1)、构造函数默认为public访问修饰符。
(2)、析构函数不能显示使用访问修饰符且默认为private访问修饰符。
(3)、类的成员默认访问修饰符为private;
3、枚举(enum)
枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。
4、结构(struct)
结构成员默认为private修饰符。
结构成员无法声明为protected成员,因为结构不支持继承。
5、嵌套类型
嵌套类型的默认访问修饰符为private。 和类,结构的成员默认访问类型一致