C#中 protected internal 和 internal 的区别

http://kudick.blog.163.com/blog/static/1666066320091055414453/   DoDo:

protected: 爷爷有一张银行卡,爸爸能够用,儿子也能够用,隔壁老王不能够用(由于老王跟爷爷没有继承关系)

internal: 王总有一张银行卡,秘书能够用,经理能够用,王总儿子不能够用(由于银行卡属于公家财务,只能由公司内部人员【同一个程序集】使用,王总儿子虽然继承王总,可是他不是公司内部人员,因此也不能公款私用)

PS: 若是各个程序集使用了相同的强命名,那么internal也能够在不一样的程序集下使用,就好比上面的internal例子,

王总有一张银行卡(并且还有一本存折【存折至关于强命名】),同时王总的儿子也有一本存折【同样的强命名】,那么王总的儿子也能够使用了,隔壁老王也有一样的存折【强命名】因此他也能够取钱!!

    private<protected/internal<public 这个很明显了。 关键是protected和internal的问题。   protected限定的是只有在继承的子类中才能够访问,能够跨程序集           internal限定的是只有在同一个程序集中才能够访问,能够跨类    因此它们是有点交叉的。 当一个CLASS是ITERNAL的时候,要求其全部的成员的限定范围不能大于internal。 因此,当一个INTERNAL的CLASS写PROTECTED的时候,就须要两个限定符了: internal   protected 这样,限定了访问范围是:本程序集、继承的子类。 所以,关系是: private<internal   protected<internal/protected<public internal和protected的具体范围大小就不能准确的界顶了。
相关文章
相关标签/搜索