C#:访问修饰符

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

public同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。

PRivate只有同一类或结构中的代码可以访问该类型或成员。

protected只有同一类或结构或者此类的派生类中的代码才可以访问的类型或成员。

internal同一程序集中的任何代码都可以访问该类型或成员,但其他程序集中的代码不可以。

protected internal由其声明的程序集或另一个程序集派生的类中任何代码都可访问的类型或成员。 从另一个程序集进行访问必须在类声明中发生,该类声明派生自其中声明受保护的内部元素的类,并且必须通过派生的类类型的实例发生。

这里主要说一下protected internal,它所限定的访问权限是internal和protected的访问权限的并集,而不是交集,也就是说它的访问权限包括internal的访问权限和

protected的访问权限。可以用以下公式说明它的访问权限:

(protected internal)的访问权限=(internal)的访问权限+(protected)的访问权限

或者可以这么理解

(protected internal)的访问权限=(internal)的访问权限∪(protected)的访问权限

访问权限的大小比较:

private<protected<protected internal<public或者private<internal<protected internal<public

protected的访问权限和internal的访问权限不具有可比性。

对于访问修饰符,有以下几点需要注意:

①一个成员或类型只能有一个访问修饰符,但使用protected internal组合时除外。

②命名空间上不允许使用访问修饰符。命名空间没有访问限制。

③根据出现成员声明的上下文,只允许某些声明的可访问性。如果在成员声明中未指定访问修饰符,则使用默认的可访问性。不嵌套在其他类型中的顶级类型的可访问性只能是internal或public。这些类型的默认可访问性是internal。嵌套类型是其他类型的成员,它们可以具有下表所示的声明的可访问性。

属于

默认的成员可访问性

该成员允许的声明的可访问性

enum

public

无

class

private

public

protected

internal

private

protected internal

interface

public

无

struct

private

public

internal

private

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航