对C#中public、private、protect的区别说明

访问修饰符都知道是什么,但是在这之前没有深入的去研究和探索,每天都接触的东西应该清楚才可以。

最基础的三个访问修饰符:

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是指:在同一程序集中,或派生类中可以访问。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

你可能感兴趣的:(对C#中public、private、protect的区别说明)