.NET之中的access modifiers包括有公有段,私有段,保护段,内部段和内部保护段。这些关键字控制了类的成员的可视程度,定义了成员可以进入的环境,因此他们共同的名字都是access modifiers。除了最后一个内部保护段以外,将两个access modifiers进行结合是非法的。让我们依次来看看这些access modifiers在.NET中使用时的含义。
公有段代表:具有公用性并可以被任何人看到。一个公有段成员可以用一个类的实例,通过类的内部段代码,通过一个类的任何子类来获得访问权。见图A
|
|
私有段也可以顾名思义,他是隐藏的并只能被类本身使用。使用类的实例的代码或是一个子类都不拥有对私有成员的访问权。见图B。在一个特定段的外部并不被用到或是没有意义的信息或函数应该被定义为私有段。
|
|
保护段成员与私有段成员类似,他们只能被其所在的类访问,然而,保护段成员也可以被子类所使用。因此会被子类使用到的成员应该被定义为保护段,见图C。
|
|
内部段成员对于整个应用程序公开而对程序外部保持私有。内部段是在当你希望一个类被其他应用程序使用但同时要将特殊的函数保留在包含这个类的程序之中时使用。见图D。
|
|
最后是在.NET之中唯一允许的复合access modifier—内部保护段。见图E。内部保护段只能被与其父类位于同一个应用程序的子类所访问。在你需要拒绝任何其他应用程序的中的子类访问类中的某些函数时可以使用内部保护段。
|
|
前面曾提到过,access modifiers在对类的成员使用时并不受限制,但只能应用于少数其他的代码结构。规定modifiers何时可以合法地分配到一个结构的规则是由结构体所决定的:
1. Interface和enumeration成员总属于公有且并不需要(或不允许)access modifiers。
2. namespaces之中的类的缺省设置是内部段但也可以变成公有,而namespaces本身总是属于公有。
3. struct成员的缺省设置是私有并可以赋予公有,内部或私有access modifiers。
在所有情况下,modifiers的含义保持一致。
责任编辑:超凡