C# 如何使类成员受保护且为内部成员?

C# 如何使类成员受保护且为内部成员?,c#,.net,access-modifiers,C#,.net,Access Modifiers,可能重复: i、 e.它是一个内部成员,只能从派生自该类的类访问。有一个受保护的内部访问标识符。您可以使用它。有一个受保护的内部访问标识符。您可以使用它。使用受保护的内部访问修饰符-使用受保护的内部访问修饰符-只需使用两个访问说明符 protected internal void method() { } 只需使用两个访问说明符 protected internal void method() { } 所有这些答案都是反向的:受保护的内部可用

可能重复:


i、 e.它是一个内部成员,只能从派生自该类的类访问。

有一个受保护的内部访问标识符。您可以使用它。

有一个受保护的内部访问标识符。您可以使用它。

使用受保护的内部访问修饰符-

使用受保护的内部访问修饰符-

只需使用两个访问说明符

    protected internal void method()
    {
    }

只需使用两个访问说明符

    protected internal void method()
    {
    }

所有这些答案都是反向的:受保护的内部可用于相同或InternalsVisibleTo程序集中的派生类或其他对象。你想要的是不可能的,正如Eric Lippert指出的,不是真正有用的,或者至少是你不应该期待的东西:

所有这些答案都是反向的:受保护的内部可用于派生类或同一程序集或内部可视程序集中的其他对象。您想要的是不可能的,正如Eric Lippert指出的,这不是真正有用的,或者至少是您短期内不应该期望的东西:

受保护的内部意味着它可以被程序集中的任何人或从类派生的任何人访问,但不一定两者都可以访问,如果这正是您要查找的。受保护内部的副本意味着程序集中的任何人或从类派生的任何人都可以访问它,但不一定两者都可以访问,如果这就是您要寻找的。重复的?对于使用内部类型的受保护成员,为什么protected and internal不是最符合逻辑的存储类?据我所知,如果使用内部类型的成员需要对子类可见,那么唯一可用的访问修饰符是internal,这意味着必须使该字段对程序集中的所有类都可见,即使这种可见性违反了Liskov替换原则。对于使用内部类型的受保护成员,为什么受保护和内部不成为最符合逻辑的存储类?据我所知,如果使用内部类型的成员需要对子类可见,那么唯一可用的访问修饰符是内部的,这意味着该字段必须对程序集中的所有类可见,即使这种可见性违反了Liskov替换原则。