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