随笔 - 130  文章 - 1  评论 - 16  阅读 - 12万 

          见过这样的修饰符,但是没有仔细考虑过,今天做一个小练习。

           先给出一个链接,别人在网上讨论的: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

 

 

 

 

 

 

 

 

 

 

 

posted on   水语者9  阅读(1772)  评论(3编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示