开发者社区


Web服务 | ASP/ASP.Net | JSP | PHP/Perl | 网站设计
首页 - WEB技术
Web技术
全文搜索:   

深入.NET access modifiers
作者: ZDNET CHINA 特稿
2002-03-06 15:23:25


.NET之中的access modifiers包括有公有段,私有段,保护段,内部段和内部保护段。这些关键字控制了类的成员的可视程度,定义了成员可以进入的环境,因此他们共同的名字都是access modifiers。除了最后一个内部保护段以外,将两个access modifiers进行结合是非法的。让我们依次来看看这些access modifiers在.NET中使用时的含义。

access modifiers图解

公有段代表:具有公用性并可以被任何人看到。一个公有段成员可以用一个类的实例,通过类的内部段代码,通过一个类的任何子类来获得访问权。见图A

图A

公共类成员

私有段也可以顾名思义,他是隐藏的并只能被类本身使用。使用类的实例的代码或是一个子类都不拥有对私有成员的访问权。见图B。在一个特定段的外部并不被用到或是没有意义的信息或函数应该被定义为私有段。

图B

私有类成员

保护段成员与私有段成员类似,他们只能被其所在的类访问,然而,保护段成员也可以被子类所使用。因此会被子类使用到的成员应该被定义为保护段,见图C。

图 C

保护类成员

内部段成员对于整个应用程序公开而对程序外部保持私有。内部段是在当你希望一个类被其他应用程序使用但同时要将特殊的函数保留在包含这个类的程序之中时使用。见图D。

图 D

内部类成员

最后是在.NET之中唯一允许的复合access modifier—内部保护段。见图E。内部保护段只能被与其父类位于同一个应用程序的子类所访问。在你需要拒绝任何其他应用程序的中的子类访问类中的某些函数时可以使用内部保护段。

图 E

内部包含类成员

不受限制的类访问权控制

前面曾提到过,access modifiers在对类的成员使用时并不受限制,但只能应用于少数其他的代码结构。规定modifiers何时可以合法地分配到一个结构的规则是由结构体所决定的:

1.  Interface和enumeration成员总属于公有且并不需要(或不允许)access modifiers。

2.  namespaces之中的类的缺省设置是内部段但也可以变成公有,而namespaces本身总是属于公有。

3.  struct成员的缺省设置是私有并可以赋予公有,内部或私有access modifiers。

在所有情况下,modifiers的含义保持一致。

责任编辑:超凡

声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号