17、5种访问修饰符

1. 简述:

所有类型和类型成员都具有可访问性级别,用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。 可使用访问修饰符指定声明类型或成员的可访问性。

2. 5种访问修饰符

访问修饰符 说明
public 同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。
private 只有同一类或结构中的代码可以访问该类型或成员。
protected 只有同一类或结构或者此类的派生类中的代码才可以访问的类型或成员。
internal 同一程序集中的任何代码都可以访问该类型或成员,但其他程序集中的代码不可以。
protected internal 由其声明的程序集或另一个程序集派生的类中任何代码都可访问的类型或成员。 从另一个程序集进行访问必须在类声明中发生,该类声明派生自其中声明受保护的内部元素的类,并且必须通过派生的类类型的实例发生。

3. 举个栗子

public class Bicycle 
{
      public void Pedal() 
      {
      } 
}

4 . 类和结构的可访问性

直接在命名空间中声明的类和结构(即,没有嵌套在其他类或结构中的类和结构)可以是公共类和结构,也可以是内部类和结构。 如果不指定访问修饰符,则默认为 internal
结构成员,包括嵌套的类和结构,可以声明为公共的、 内部的,或私人的。 类成员(包括嵌套的类和结构)可以为公共的、受保护的内部、受保护的、内部的或私有的。 类成员和结构成员的访问级别,包括嵌套类和结构,默认为私有。 不可以从包含类型之外访问私有嵌套类型。
派生类的可访问性不能高于其基类型。 换句话说,不能有从内部类 A派生的公共类 B。 如果允许这种情况,将会使 A成为公共类,因为 A的所有受保护的成员或内部成员都可以从派生类访问。

5. 类成员和结构成员的可访问性

可以使用五种访问类型中的任何一种来声明类成员(包括嵌套的类和结构)。 结构成员无法声明为受保护成员,因为结构不支持继承。
通常,成员的可访问性低于包含成员的类型的可访问性。 如果由成员实现接口方法或重写已在公共基类中定义的虚拟方法时,内部类的公共成员可以从外部程序集访问。
任何成员的字段、 属性或事件的类型必须至少与该成员本身一样具备可访问性。 同样,作为方法、索引器或代表的任一成员的返回类型和参数类型必须至少有与该成员本身一样的可访问性。 例如,如果 C不是公共类,则不能返回类 C的公共方法 M。 同样,如果 A声明为私有,则类型 A不能有受保护的属性。
析构函数不能具有可访问性修饰符。
要设置类成员或结构成员的访问级别,请向该成员声明添加适当的关键字,如下面的示例所示。

        public class Tricycle
        {
            // protected method:
            protected void Pedal() { }

            // private field:
            private int wheels = 3;

            // protected internal property:
            protected internal int Wheels
            {
                get { return wheels; }
            }
        }

6. 其他类型

  1. 接口成员始终是公共成员,因为接口的用途是让其他类型能够访问某个类或结构。 访问修饰符不能应用于接口成员。
  2. 枚举成员始终是公共的,不能应用任何访问修饰符。
  3. 委托行为类似于类和结构。 默认情况下,它们在命名空间中直接声明时具有内部访问权,在嵌套时具有私有访问权。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容