您的位置:首页 > 其它

protected internal修饰符

2014-03-07 11:12 375 查看
见过这样的修饰符,但是没有仔细考虑过,今天做一个小练习。

先给出一个链接,别人在网上讨论的:http://wenku.baidu.com/view/4023f65abe23482fb4da4cfe.html

1.本类中访问的情况:



2.子类中访问的情况:(这是在同一命名空间中的,所以internal修饰的是可以访问的)



3.在同一命名空间下,但是在其它的类中的访问情况:(由于是在同一命名空间,internal和protected internal的作用没什么区别)



4.在另外的项目中,也就是命名空间不同的访问情况:



5.还有一种情况是,在另外的命名空间中,在TestA子类中的访问情况:



由上面的几个例子可以看出,internal和protected internal主要的区别如下:

1) 命名空间相同的时候,protected internal=internal;

2) 命名空间不同的时候,protected internal=protected;

也就是说protected internal用到的场合要比internal广泛。这在Jeffrey Richter的《CLR via C#》中有相关的描述:(P142 第三版)

修饰符从限制最大(private)到限制最小(public)的排序:

private

protected

internal 成员只能由定义程序集中的方法访问

protected internal 成员可由任何嵌套类型、任何派生类型(不管在什么程序集)或者定义程序集中的任何方法访问

public
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: