您的位置:澳门新葡8455最新网站 > 编程教学 > 访问修饰符及各种元素的访问修饰符的默认值,

访问修饰符及各种元素的访问修饰符的默认值,

发布时间:2019-12-31 04:27编辑:编程教学浏览(181)

    使用访问修饰符 public、protected、internal 或 private 可以为成员指定以下声明的可访问性之一。

    一个编译器错误提示:在命名空间中定义的元素无法显示的声明为 private, protected, protected internal。

    • public 访问不受限制。
    • protected 只可以被本类及其派生类访问。
    • internal 可被本组合体(Assembly)内所有类访问,组合体是 C# 语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是 .dll、.exe等。
    • protected internal 它可以被本组合体内所有类和这些类的派生类访问,注意比 internal 范围广。
    • private 仅能被本类访问。

    能在命名空间中定义的元素有:类(class),结构(struct),委托(delegate),接口(interface),枚举(enum) 

    如果在成员声明中未指定访问修饰符,则使用默认的可访问性。

    MSDN提示: protected internal 可访问性的意思是受保护“或”内部,而不是受保护“和”内部。

    不嵌套在其他类型中的顶级类型的可访问性只能是 internal 或 public。这些类型的默认可访问性是 internal。

    我们的访问修饰符一共有5个级别

    名称空间上不允许使用访问修饰符。名称空间没有访问限制。

    public, private, protected, internal, protected internal

    除了访问修饰符外,C# 还有其它修饰符,请参见 MSDN 的修饰符(C#).aspx)。

     

    相关阅读

    1.命名空间下的元素的默认访问修饰符

    • C# 访问修饰符

    根据上面的红色错误提示,可以知道命名空间下只能使用两种访问修饰符public和internal。如果没有显示的给这些元素访问修饰符,其修饰符默认为internal 。

    public : 同一程序集的其他任何代码或引用该程序集的其他程序集都可以访问该类型或成员。

    internal : 同一程序集中的任何代码都可以访问该类型或成员,但其他程序集不可以访问。 

     

    2.各类型中的成员的默认访问修饰符

    剩下的修饰符主要是正对继承这个语言特性的,拥有继承的类型有两个类(class)和接口(interface)。public,internal同样可以用于类型成员。

    private : 同一类和结构的代码可以访问该类型和成员。

    protected : 同一类和派生(继承特性)类中的代码可以访问该类型和成员。

    protected internal :  同一程序集中的任何代码或其他程序集中的任何派生类都可以访问该类型或成员。

     

    MSDN提示 :

    1.) 派生类的可访问性不能高于其基类型。换句话说,不能有从内部类 A 派生的公共类 B。如果允许这种情况,将会使 A 成为公共类,因为 A 的所有受保护的成员或内部成员都可以从派生类访问。 

    2.) 成员的可访问性决不能高于其包含类型的可访问性。 

    3.) 可以使用五种访问类型中的任何一种来声明类成员(包括嵌套的类和结构)。 

     

    接口成员

    接口成员访问修饰符默认为public,且不能显示使用访问修饰符。

     

    类成员

    构造函数默认为private访问修饰符。

    析构函数不能显示使用访问修饰符且默认为private访问修饰符。 

    类的成员默认访问修饰符为private; 

     

    枚举成员

    枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。

     

    结构成员 

    结构成员默认为private修饰符。 

    结构成员无法声明为protected成员,因为结构不支持继承。 

     

    嵌套类型

    嵌套类型的默认访问修饰符为private。 和类,结构的成员默认访问类型一致。

    本文由澳门新葡8455最新网站发布于编程教学,转载请注明出处:访问修饰符及各种元素的访问修饰符的默认值,

    关键词:

上一篇:循环语句,Java调控流程实行

下一篇:没有了