您的位置:首页 > 编程语言 > C#

C#中默认访问修饰符

2014-04-07 16:12 225 查看
如果被问到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)可以使用五种访问类型中的任何一种来声明类成员(包括嵌套的类和结构。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: