标签:C# 成员 修饰符 默认 访问 五种 private internal
文章目录
一、概述
所有类型和类型成员都具有可访问性级别,用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。 可使用访问修饰符指定声明类型或成员的可访问性。
在C#语言中,共有五种访问修饰符:public、private、protected、internal、protected internal。
二、作用范围
访问修饰符 | 说明 |
---|---|
public | 公有访问,不受任何限制。 |
private | 私有访问,只限于本类成员访问,子类、实例都不能访问。 |
protected | 保护访问,只限于本类和子类访问,实例不能访问。 |
internal | 内部访问,只限于本项目内访问,其他不能访问。 |
protected internal | 内部保护访问,只限于本项目或者子类访问,其他不能访问。 |
三、补充
- protected internal 在现版本的编程使用较少,它是将保护访问与内部访问结合起来形成的一种内部保护访问。
- 直接在命名空间中声明的类和结构(即:没有嵌套在其他类或结构中的类和结构)可以是公共类和结构,也可以是内部类和结构。如果不指定访问修饰符,则默认为 internal。
- 派生类的可访问性不能高于其基类型。换句话说,不能有从内部类A派生的公共类B。 如果允许这种情况,将会使A成为公共类,因为A的所有受保护的成员或内部成员都可以从派生类访问。
- 结构成员,包括嵌套的类和结构,可以声明为公共的、 内部的,或私有的。 类成员(包括嵌套的类和结构)可以为公共的、受保护的内部、受保护的、内部的或私有的。 类成员和结构成员的访问级别,包括嵌套类和结构,默认为私有。 不可以从包含类型之外访问私有嵌套类型。
1、C#中方法、类等的默认访问修饰符
- 接口(interface)
接口成员访问修饰符默认为public,且不能显示使用访问修饰符。 - 类(class)
构造函数默认为public访问修饰符。析构函数不能显示使用访问修饰符且默认为private访问修饰符。类的成员默认访问修饰符为private。 - 枚举(enum)
枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。 - 结构(struct)
结构成员默认为private修饰符。结构成员无法声明为protected成员,因为结构不支持继承。 - 嵌套类型
嵌套类型的默认访问修饰符为private。 和类,结构的成员默认访问类型一致。
2、成员类型的可修饰,及其默认(即如果不指定)修饰符
成员类型 | 默认修饰符 | 可被修饰符 |
---|---|---|
enum | public | none |
class | private | public、protected、internal、private、protected internal |
interface | public | none |
struct | private | public、internal、private |
3、接口成员、枚举成员、 委托行为
- 接口成员始终是公共成员,因为接口的用途是让其他类型能够访问某个类或结构。访问修饰符不能应用于接口成员。
- 枚举成员始终是公共的,不能应用任何访问修饰符。
- 委托行为类似于类和结构。默认情况下,它们在命名空间中直接声明时具有内部访问权,在嵌套时具有私有访问权。
标签:C#,成员,修饰符,默认,访问,五种,private,internal 来源: https://blog.csdn.net/qq_44034384/article/details/106470947
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。