• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#访问修饰符及各种元素的访问修饰符的默认值

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一个编译器错误提示:在命名空间中定义的元素无法显示的声明为 private, protected, protected internal。

能在命名空间中定义的元素有:类(class),结构(struct),委托(delegate),接口(interface),枚举(enum) 

MSDN提示: protected internal 可访问性的意思是受保护“或”内部,而不是受保护“和”内部。

我们的访问修饰符一共有5个级别

public, private, protected, internal, protected internal

 

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

根据上面的红色错误提示,可以知道命名空间下只能使用两种访问修饰符public和internal。如果没有显示的给这些元素访问修饰符,其修饰符默认为internal 。

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

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

 

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

剩下的修饰符主要是正对继承这个语言特性的,拥有继承的类型有两个类(class)和接口(interface)。public,internal同样可以用于类型成员。

private : 同一类和结构的代码可以访问该类型和成员。

protected : 同一类和派生(继承特性)类中的代码可以访问该类型和成员。

protected internal :  同一程序集中的任何代码或其他程序集中的任何派生类都可以访问该类型或成员。

 

MSDN提示 :

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

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

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

 

接口成员

接口成员访问修饰符默认为public,且不能显示使用访问修饰符。

 

类成员

构造函数默认为private访问修饰符。

析构函数不能显示使用访问修饰符且默认为private访问修饰符。 

类的成员默认访问修饰符为private; 

 

枚举成员

枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。

 

结构成员 

结构成员默认为private修饰符。 

结构成员无法声明为protected成员,因为结构不支持继承。 

 

嵌套类型

嵌套类型的默认访问修饰符为private。 和类,结构的成员默认访问类型一致。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#简明教程发布时间:2022-07-13
下一篇:
C语言编程规范试题(标准答案)-乐学乐发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap