前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#中默认访问修饰符

C#中默认访问修饰符

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-25 15:17:07
1.3K0
发布2019-01-25 15:17:07
举报

如果被问到C#中默认的访问修饰符是什么?你该怎么回答,是不是感觉不太好说!我把资料整理如下, 仅供参考!

首先,必须明确的是C#中的访问修饰符有5中:

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

下面分情况进行叙述:

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

命名空间下只能使用两种访问修饰符public和internal。如果没有显示的给这些元素访问修饰符,其修饰符默认为internal。

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

类中所有的成员,默认均为private,当然也可以修改成其它的访问修饰符。

接口的成员默认访问修饰符是public,也不可能是其他访问修饰符。

命名空间,枚举类型成员默认public,也不可能是其他访问修饰符。

委托,默认的是internal 。

列表如下:

类型

默认访问修饰符

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

enum

public

public

class

private

public protected internal protected internal private

interface

public

public

struct

private

public internal private

其次,需要注意的是:

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

2)成员的可访问性决不能高于其包含类型的可访问性。 3)可以使用五种访问类型中的任何一种来声明类成员(包括嵌套的类和结构。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年04月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档