c#的默认访问权限
1.命名空间下的元素的默认访问修饰符
public : 同一程序集的其他任何代码或引用该程序集的其他程序集都可以访问该类型或成员。
internal : 同一程序集中的任何代码都可以访问该类型或成员,但其他程序集不可以访问。
2.各类型中的成员的默认访问修饰符
剩下的修饰符主要是正对继承这个语言特性的,拥有继承的类型有两个类(class)和接口(interface)。public,internal同样可以用于类型成员。
private : 同一类和结构的代码可以访问该类型和成员。
protected : 同一类和派生(继承特性)类中的代码可以访问该类型和成员。
protected internal : 同一程序集中的任何代码或其他程序集中的任何派生类都可以访问该类型或成员。
MSDN提示 :
1.) 派生类的可访问性不能高于其基类型。换句话说,不能有从内部类 A 派生的公共类 B。如果允许这种情况,将会使 A 成为公共类,因为 A 的所有受保护的成员或内部成员都可以从派生类访问。
2.) 成员的可访问性决不能高于其包含类型的可访问性。
3.) 可以使用五种访问类型中的任何一种来声明类成员(包括嵌套的类和结构)。
方法和属性(function,property)
属性和方法默认为private的,可以显示的定义为public、private、protected、internal、或者
protected internal 等访问类型。
接口(interface)
接口成员访问修饰符默认为public,且不能显示使用访问修饰符。
类(class)
构造函数默认为public访问修饰符。
析构函数不能显示使用访问修饰符且默认为private访问修饰符。
类的成员默认访问修饰符为private。
枚举(enum)
枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。
结构(struct)
结构成员默认为private修饰符。
结构成员无法声明为protected成员,因为结构不支持继承。
嵌套类型
嵌套类型的默认访问修饰符为private。 和类,结构的成员默认访问类型一致。
最新文章
- asp.net signalR 专题—— 第四篇 模拟RPC模式的Hub操作
- jNotify:操作结果信息提示条
- Android中的布局动画
- RegOpenKeyEx和RegSetValueEx返回ERROR_SUCCESS,但注册表未发生变化。
- 简单的mysql查询
- 使用PreparedStatement执行SQL语句时占位符(?)的用法
- hdoj 5386 Cover
- LBS云端数据删除和上传
- [Leetcode][001] Two Sum (Java)
- Yii Framework2.0开发教程(10)配合mysql数据库实现用户登录
- 才一年,H5的发展就成这样了......
- JS构造函数、原型对象、隐含参数this
- Curl测试socks5 or http 代理命令
- 【转】Linux查看系统是32位还是64位方法总结
- 开源网站流量统计系统Piwik源码分析——参数统计(一)
- iOS UI基础-18.0 UIView
- activemq5.11整合spring4.2.3
- input只读属性 设置和移除 选择数字
- [置顶]
 普通程序员如何入门AI
- 【requirejs】JS模块化工具requirejs教程