受保护的类在c#中的行为方式

时间:2014-01-21 17:11:22

标签: c#

我可以理解protected modifier如何对类成员(方法和变量)起作用,但是有人请告诉我Protected类的行为。

例如: -

namespace AssemblyA  
{  
  Protected class ProClass  
  {
     int a=10,b=10;
     public int get()
     {
        return a+b;
     }
  }  
}

任何人都可以解释受保护类的行为​​方式。

2 个答案:

答案 0 :(得分:7)

编写它的方式无法编译。只有嵌套类可以受到保护 - 它们可以被外部类派生的任何类访问,就像其他受保护的成员一样。

class Outer
{
    protected class Nested
    {
    }
}

class Derived : Outer
{
    static void Foo()
    {
        var x = new Outer.Nested(); // Valid
    }
}

class NotDerived
{
    static void Foo()
    {
        var x = new Outer.Nested(); // Invalid
    }
}

答案 1 :(得分:1)

您将收到错误消息:

  

命名空间中定义的元素不能显式声明为   私人,受保护或受保护的内部