可访问性级别

  这是一个本来就老掉牙的理论问题了,既然已经这样说了,为什么还会有这篇文章呢?当然,呵呵,这里只是重在梳理,相信大家对这个理论很熟悉了,不过在这里我会根据自己的理解做很详细的介绍。首先上张图吧,有图有真相嘛!
C# <wbr>类修饰符的访问详解(转)

从第一个修饰符public 开始,就像图片所描述的对任何类和成员都公开,无访问限制。当一个类被public修饰之后,那么我们把这个类所在的项目编译成dll,exe,ocx之后,我们仍然可以访问该类,属性,字段,方法也是类似。public就好像:The People's Republic of China,中的共和思想,只要你是中国人你就有“共和”的权利。同一个项目中访问public成员可以,不同项目访问也可以,在面向对象编程思想中,这需要相当警惕。你所写的变量,类,属性,方法,是否真的需要public,这会在无意识的情况下破坏封装的思想,因此在写代码的时候尽量养成对成员、变量较好的修饰。

第二个protected,这个从字面意思容易明白“保护”。那么这个保护怎么说呢?古代有句话“父母之爱子则为之计深远”,父母爱子就是这里的protected,我们中国传统思想,更加看重这一点,尤其是一直小农经济为主,所形成的私有家庭,更加在这个protected上根深蒂固,比如父辈,祖辈的东西只能给子辈看、传承(比如传家宝),或者自己的族人看到。这就是图中描述的:仅仅对该类以及该类的派生类所使用,至于什么是派生类,应该不用说明了~~ ,基础的基础!

第三个private,这个就有意思了,一看英文原意就知道“私有”,你说私有的东西,不就像是“自私”吗?我们常说的“独乐乐不如众乐乐”,可偏偏有些东西就是不能给大家共享的,我们程序员最受热议的:微软的开源,这个就是微软私有的占有者微软程序员共同努力的成果。当一个类,或者一个类里的成员变量被设置为private时,只能被在自己本身类使用,其派生类不能继承,程序集中其他类不能使用,外界那是更不能调用了,这就是private。

第四个internal,这个算是用的少??不是!我们新建一个类的时候默认没加修饰符,就是它,它在修饰我们新建的类。这是什么意思呢?“内部的,内在的”!或许疑问了,这个内部内在的到底有多内,多内在吗?这让我突然想到内在美,也是哦!!在这里还真的能解释一番了,内在美是一个人所具有的,是不能跟别人共享的,你有的内在美留给人的只是欣赏,只是羡慕!那么跟internal有什么关系呢?如果把人看成一个“程序集”(结合上图),那么人的思想,内心,器官(器官不知道算不算是内在美的一部分???)...就看成“类”,因为他们自身可以“实现方法”,定义一些“成员变量”,那么这时候的内在美只能是你这个程序集享用,外部是没法使用的,但是人说“修身养性”,你的言语(音容相貌),你的身体健康(器官)当然可以共享和受益你的内在美,所以归纳出来就是:被internal修饰的成员只能被当前程序集中使用,不能被外界使用。

第五个protected internal,这个就是一个组合式的限制吧,这个相信很多人都没使用过,当然包括我!因为这样的修饰,也太精明了,我有没做太多企业级的开发,何必弄那么严格,够用就行了!言规正传~,这个你凭理解就知道了,他们是并列关系,就是protected和internal的共同修饰,具有两者的共性,仅限于当前程序集或者是从本身类派生出来的子类使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值