【问题标题】:How to make a class member protected and internal? [duplicate]如何使类成员受保护和内部? [复制]
【发布时间】:2011-07-07 18:31:27
【问题描述】:

可能重复:
How to make protected AND internal?

即它是一个内部成员,只能从该类派生的类中访问。

【问题讨论】:

  • protected internal 表示程序集中的任何人都可以访问它,也可以从类派生的任何人访问它,但不一定是两者,如果您正在寻找的话。

标签: c# .net access-modifiers


【解决方案1】:

所有这些答案都是向后的:受保护的内部可用于派生类或同一(或 InternalsVisibleTo)程序集中的其他对象。你想要的东西是不可能的,正如 Eric Lippert 指出的那样,它不是真正有用的,或者至少是你不应该很快期待的东西:http://blogs.msdn.com/b/ericlippert/archive/2008/04/24/why-can-t-i-access-a-protected-member-from-a-derived-class-part-three.aspx

【讨论】:

  • 为什么“受保护和内部”不是使用内部类型的受保护成员最合乎逻辑的存储类?据我所知,如果使用内部类型的成员需要对后代类可见,则唯一可用的访问修饰符是“内部”,这意味着该字段必须对程序集中的所有类可见,即使这种可见性会违反里氏替换原则。
【解决方案2】:

使用受保护的内部访问修饰符 - http://msdn.microsoft.com/en-us/library/ms173121.aspx

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      只需使用两个访问说明符..

          protected internal void method()
          {
          }
      

      【讨论】:

        猜你喜欢
        • 2012-10-09
        • 2015-11-23
        • 2012-03-27
        • 2011-05-24
        • 2016-07-23
        • 2013-04-08
        • 2019-08-27
        • 2015-06-14
        • 1970-01-01
        相关资源
        最近更新 更多