为什么受保护的内部类无法派生?

时间:2013-06-05 07:19:07

标签: c#

protected internal的范围是相同的程序集,或者是另一个程序集中的任何派生类。那么为什么不能派生受保护的内部类?

示例代码:

 protected internal class AbsClass
    {
        int m = 50;
        public int am = 5;     

        public void nonAbsfn()
        {
            Console.WriteLine(m + am);
        }
    }

    class TestAbstract : AbsClass
    {


    }

2 个答案:

答案 0 :(得分:5)

如果类是内部类,则该类只能是protected internal 否则,课程只能是publicinternal

要修复编译错误,请将课程设为publicinternal。您获得的错误与派生类TestAbstract无关。

答案 1 :(得分:0)

根据MSDN documentation

  

类型或成员可以由声明它的程序集中的任何代码访问,也可以从另一个程序集中的派生类中访问。来自另一个程序集的访问必须在一个类声明中进行,该声明派生自声明受保护的内部元素的类,并且它必须通过派生类类型的实例进行。

所以你应该能够做到。你能发布一些代码吗?