• C#:访问修饰符


    public

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

    private

    只有同一类或结构中的代码可以访问该类型或成员。

    protected

    只有同一类或结构或者此类的派生类中的代码才可以访问的类型或成员。

    internal

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

    protected internal

    由其声明的程序集或另一个程序集派生的类中任何代码都可访问的类型或成员。 从另一个程序集进行访问必须在类声明中发生,该类声明派生自其中声明受保护的内部元素的类,并且必须通过派生的类类型的实例发生。

    这里主要说一下protected internal,它所限定的访问权限是internalprotected的访问权限的并集,而不是交集,也就是说它的访问权限包括internal的访问权限和

    protected的访问权限。可以用以下公式说明它的访问权限:

    protected internal)的访问权限=(internal)的访问权限+(protected)的访问权限

    或者可以这么理解

    protected internal)的访问权限=(internal)的访问权限∪(protected)的访问权限

    访问权限的大小比较:

    private<protected<protected internal<public或者private<internal<protected internal<public

    protected的访问权限和internal的访问权限不具有可比性。

    对于访问修饰符,有以下几点需要注意:

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

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

    ③根据出现成员声明的上下文,只允许某些声明的可访问性。如果在成员声明中未指定访问修饰符,则使用默认的可访问性。不嵌套在其他类型中的顶级类型的可访问性只能是internalpublic这些类型的默认可访问性是 internal。嵌套类型是其他类型的成员,它们可以具有下表所示的声明的可访问性。

    属于 默认的成员可访问性 该成员允许的声明的可访问性
    enum public

    class

    private

    public
    protected
    internal
    private
    protected internal
    interface public

    struct

    private

    public
    internal
    private
     
     
  • 相关阅读:
    svmlight、libsvm 和 svmtorch(torch) 极夜.潜的日志 网易博客
    ObjectiveC学习之旅(二)函数、类、作用域
    快速掌握 ObjectiveC (For C/C++ developer)
    MAC系统使用总结
    VM虚拟机安装苹果雪豹操作系统
    asp.net调试遇到的问题
    C#调用WebService
    SqlServer2008建立触发器实例
    sqlserver2008无法登陆问题
    IIS上面部署网站
  • 原文地址:https://www.cnblogs.com/PolarisSky/p/3871984.html
Copyright © 2020-2023  润新知