C#中默认访问修饰符

转自:https://blog.csdn.net/theonegis/article/details/23109695

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

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

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

下面分情况进行叙述:

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

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

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

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

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

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

委托,默认的是internal 。

类型 默认访问修饰符 该成员允许声明的可访问性
列表如下:

类型默认访问修饰符该成员允许声明的可访问性
enumpublicpublic
classprivatepublic protected internal protected internal private
interfacepublicpublic
structprivatepublic internal private

其次,需要注意的是:

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

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

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

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值