【问题标题】:Opposite of private access modifier与私有访问修饰符相反
【发布时间】:2023-04-03 02:42:01
【问题描述】:

是否有可能创建一个声明它的类实际上无法访问的成员?只有派生类才能访问该成员。

【问题讨论】:

  • 你到底为什么要这么做?
  • 也许你可以在接口上声明一个属性,然后在你的类上实现它。
  • 主要原因是为了可维护性(如果有人查看代码并发现在声明类中有用的方法,他们会发现它在该类中不可访问并且不得不问为什么,因为例子)。在某些情况下也可以避免使用空引用检查。

标签: c# access-modifiers


【解决方案1】:

您要查找的最接近的是protected,它只能由声明它的类及其派生类访问。见这里:http://msdn.microsoft.com/en-us/library/ms173121.aspx

除非你指的是abstract类,它不能被实例化并且可以包含没有代码的方法声明:http://msdn.microsoft.com/en-us/library/sf985hc5(v=vs.71).aspx

【讨论】:

    【解决方案2】:

    不,这是不可能的。最少的访问修饰符是private,它可以在类内部访问,但不能在外部访问

    【讨论】:

      【解决方案3】:

      没有。在 C# 中没有办法做到这一点。

      【讨论】:

        【解决方案4】:

        如果您真的想这样做,您可以使用不允许任何更改的集合创建一个属性 - 所以不是真的无法访问,但会限制功能。但是,这可能表明需要重新设计以决定是否有更好的方法。

        【讨论】:

          猜你喜欢
          • 2011-04-18
          • 2017-12-22
          • 2014-08-27
          • 2011-01-31
          • 1970-01-01
          • 2015-11-26
          • 2020-05-04
          • 2011-05-14
          相关资源
          最近更新 更多