对C#中public、private、protect的区别说明
作者:James-Blackhu
访问修饰符都知道是什么,但是在这之前没有深入的去研究和探索,每天都接触的东西应该清楚才可以。
最基础的三个访问修饰符:
public 、private、protect.在搜索过程中又看到有一种和他们放在了一起,那就是internal.接下来就四个访问修饰符做一个简答的总结和介绍。
public
公有访问,不受任何限制。
private
私有访问,只限于本类成员访问,子类、实例都不能访问。
protected
保护访问,只限于本类和子类访问,实例不能访问。
internal
内部访问,只限于本项目内访问,其他不能访问。
public人缘好,跟谁都好,protect只和熟人好,private比较自闭.不过他们是三胞胎.class是他们的爹。
例:
比如说:一个人A为父类,他的儿子B,妻子C,私生子D(注:D不在他家里),如果我们给A的事情增加修饰符:
public事件,地球人都知道,全公开
protected事件,A,B,D知道(A和他的所有儿子知道,妻子C不知道)
private事件,只有A知道(隐私?心事?)
internal事件,A,B,C知道(A家里人都知道,私生子D不知道)
注意事项:
1, 命名空间上不允许使用访问修饰符。命名空间没有访问限制。
2, 一个成员或类型只能有一个访问修饰符,使用 protectedinternal 组合时除外
3, assembly中的class默认访问修饰符为internal
4, 类中的字段默认为private
5, 类中的方法默认为private,包括构造函数
补充:C#中internal和protect internal的理解
internal
internal关键字是用来修饰类和类的成员的,表示该内容只能在本程序集中访问。
程序集:一般输出形式为dll或exe的文件。
例子:
如果某个程序集中,有如下的类:
namespace InternalTest { internal class InternalTest1 { ... } public class InternalTest2 { ... } }
那么在另外一个程序集中,可以访问InternalTest2,但是不能访问InternalTest2。
protect internal
protect internal 是指protect or internal是指:在同一程序集中,或派生类中可以访问。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。