为什么不能从内部类继承公共类?

Yaz*_*ati 4 c#

看到这段代码:

internal class c 
{
    private int d;
}

public class a : c
{
    private int b;
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能从内部类继承公共类?为什么编译器有这种行为?

Joe*_*oey 6

因为公共类在当前程序集之外是可见的,而内部程序则不是.从类中派生时,您只能进一步限制可见性,因为在您的情况下,它会使c您的程序集外部的消费者可以使用哪种实现,这样就无法使类首先成为内部的.

但是,您可以使用合成而不是继承.