• 可访问级别(转)


    可访问性级别(C# 参考)

    http://msdn.microsoft.com/zh-cn/library/ba0a1yw2(v=VS.80).aspx

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

    声明的可访问性

    含义

    public

    访问不受限制。

    protected

    访问仅限于包含类或从包含类派生的类型。

    internal

    访问仅限于当前程序集。

    protected internal

    访问仅限于从包含类派生的当前程序集或类型。

    private

    访问仅限于包含类型。

    一个成员或类型只能有一个访问修饰符,使用 protected internal 组合时除外。

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

    根据发生成员声明的上下文,只允许某些声明的可访问性。如果在成员声明中未指定访问修饰符,则使用默认的可访问性。

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

    嵌套类型是其他类型的成员,它们可以具有下表所示的声明的可访问性。

    属于

    默认的成员可访问性

    该成员允许的声明的可访问性

    enum

    public

    class

    private

    public、protected、internal、private、protected internal

    interface

    public

    struct

    private

    public、internal、private

    嵌套类型的可访问性取决于它的可访问域,该域是由已声明的成员可访问性和直接包含类型的可访问域这二者共同确定的。但是,嵌套类型的可访问域不能超出包含它的类型的可访问域。

    Private

    private 关键字是一个成员访问修饰符。
    http://msdn.microsoft.com/zh-cn/library/st6sy9xe(v=VS.80).aspx

    私有访问是允许的最低访问级别,私有成员只有在声明它们的类和结构体中才是可访问的。

    如下例所示:

    class Employee
    {
        private int i;
        double d;   // private access by default
    }

    同一体中的嵌套类型也可以访问那些私有成员。

    在定义私有成员的类或结构外引用它会导致编译时错误。

    Protected

    protected 关键字是一个成员访问修饰符。
    http://msdn.microsoft.com/zh-cn/library/bcd5672a(v=VS.80).aspx

    受保护成员在它的类中可访问并且可由派生类访问,仅当访问通过派生类类型发生时,基类的受保护成员在派生类中才是可访问的。

    例如,请看以下代码段:

    // protected_keyword.cs
    using System;
    class A
    {
        protected int x = 123;
    }
    
    class B : A
    {
        static void Main() // 在继承类方法中使用父类的protected成员
        {
            A a = new A();
            B b = new B();
    
            // Error CS1540, because x can only be accessed by
            // classes derived from A.
            // a.x = 10; 
            
            // OK, because this class derives from A.
            b.x = 10;   
        }
    }

    语句 a.x =10 将生成错误,因为 A 不是从 B 派生的。

    结构成员无法受保护,因为无法继承结构。

    Internal

    internal 关键字是类型和类型成员的访问修饰符。

    只有在同一程序集的文件中,内部类型或成员才是可访问的。

    如下例所示:

    public class BaseClass 
    {
        // Only accessible within the same assembly
        internal static int x = 0;
    }

    有关 internal 与其他访问修饰符的比较,请参见可访问性级别和访问修饰符(C# 编程指南)。

  • 相关阅读:
    第72届奥斯卡最佳动画奖《老人与海》
    关不掉的手机应用程序
    李嘉诚:知识并不一定使你的财富增加
    Linux之父Linus Torvalds谈软件开发管理经验
    Google 正式发布Dart编程语言
    代码本身其实并不重要,重要的是用户
    22个基于HTML5开发的网站
    看看耶鲁大学心态 ,送给正在奋斗的人 !
    用 git 维护 vim 代码
    谈程序语言的设计及程序员心态
  • 原文地址:https://www.cnblogs.com/axyz/p/1880519.html
Copyright © 2020-2023  润新知