【发布时间】:2023-03-14 19:40:01
【问题描述】:
您可能已经知道,.NET Framework 的 protected internal 访问修饰符以一种奇怪的方式工作:这并不意味着该类受到保护 AND internal,表示该类是protected OR internal;也就是说,修改后的类或成员可以从同一程序集以及从同一层次结构中访问。
所以,知道这一点:您什么时候使用它?能给我举个例子吗? .NET 基类库中是否有一个很好的启发性用法示例?
【问题讨论】:
-
我不知道。我一直以为是 AND。
-
这是您第一次阅读时的想象。我想任何人都可能以同样的方式猜测。
-
是的,我想它第一次就吸引了所有人。
-
AND/OR 逻辑有点混乱。在 C# 中,成员默认是私有的,您可以根据需要打开访问权限。 Public 提供所有访问权限,protected 提供对派生类的访问权限,internal 提供对同一程序集中所有类的访问权限。通过这种推理,受保护的内部是受保护的和内部的(您可以访问派生类和同一程序集中的类)。大多数人的想法是相反的(增加限制而不是取消限制)。
标签: .net encapsulation access-modifiers