请说明 C# 中访问修饰符的完整列表,以及每一个的作用范围。
考察说明
考查对 C# 访问控制机制的理解,是否能清晰说出各修饰符的可见性边界。
回答思路
- 【回答框架 1】C# 访问修饰符用于控制类型和成员的可见性。主要包含六个:public、private、protected、internal、protected internal、private protected。此外,C# 7.2 新增了 file 修饰符,但常见面试重点在前六个。
- 【回答框架 2】public 访问不受限制,任何代码都可以访问。private 只能在声明它的类或结构体内访问。protected 允许在声明类及其派生类中访问。internal 限制在同一程序集内访问。
- 【回答框架 3】protected internal 是 protected 与 internal 的并集,即同一程序集内可访问,或派生类可访问。private protected 是交集,即仅在同一程序集内的派生类可访问。
- 【回答框架 4】类的默认访问级别是 internal,类成员的默认级别是 private。命名空间中的类型默认为 internal。
- 【关键点 1】C# 共有六个核心访问修饰符:public、private、protected、internal、protected internal、private protected。
- 【关键点 2】public 与 private 是两端,分别为最公开和最私有。
- 【关键点 3】protected 与派生类相关,internal 与程序集相关,组合可细化访问范围。
- 【关键点 4】类默认 internal,成员默认 private。
- 【易错点 1】不要把 protected internal 误解为 '既是 protected 又是 internal' 的交集,它实际是并集。
- 【易错点 2】不要把 private protected 误解为 protected internal,两者范围不同。
- 【易错点 3】不要忽略默认访问级别,如类默认为 internal 而非 public。