(1) Pubilc :任何公有成员可以被外部的类访问。
(2) Private :只有同一个类中的函数可以访问它的私有成员。
(3) Protected :该类内部和继承类中可以访问。
(4) internal : 同一个程序集的对象可以访问。
(5) Protected internal :3 和 4 的并集,符合任意一条都可以访问。
封装
被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。
抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。
C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。
一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示:
声明的可访问性 | 含义 |
---|---|
public | 访问不受限制。 |
protected | 访问限于包含类或派生自包含类的类型。 |
internal | 访问限于当前程序集。 |
protected internal | 访问限于当前程序集或派生自包含类的类型。 |
private | 访问限于包含类。 |
private protected | 访问限于包含类或当前程序集中派生自包含类的类型。 |
成员 | 默认成员可访问性 | 允许的成员的声明的可访问性 |
---|---|---|
enum |
public |
无 |
class |
private |
public protected internal private protected internal private protected |
interface |
public |
public protected internal private *protected internal private protected |
struct |
private |
public internal private |
* 具有 private
可访问性的 interface
成员必须具有默认的实现。
备注
如果使用 record 关键字修饰符修改类或结构,则允许相同的访问修饰符。
此外,使用