为什么我不能从私有类/接口继承?

本文关键字:接口 继承 不能 为什么 | 更新日期: 2023-09-27 18:13:33

为什么这在c#中是非法的?

class Foo: Foo.BaseFoo //Circular base class dependency compile time error
{
   private class BaseFoo {...}
   ...
}

我不是在争论这是否有用,但我想知道不允许这样的代码编译的原因是什么。私有接口也有类似的限制。

看到它是重复的,我将把问题更多地集中在为什么这对看起来更有用的接口无效?

更重要的是,为什么看起来Roslyn预览版是合法的

为什么我不能从私有类/接口继承?

这不是访问修饰符的问题——类是私有的。这是一个循环基类依赖。您尝试定义一个名为Foo的类,它继承了一个名为BaseFoo的嵌套类。