不能从内部课堂公开上课?

时间:2014-05-02 16:19:49

标签: c#

我有一个内部课程:

internal abstract class Reader
{
    //internal abstract void methods
}

我无法上课:

public abstract class CustomFileReader : Reader
{
}

因为它比它继承的类更明显。我想这样做是为了强制你必须继承Reader类的公共可访问的继承者而不是基类。这是可能的还是我必须暴露基类?

1 个答案:

答案 0 :(得分:11)

您不能在internal类的继承树中拥有public类,但可以强制用户从CustomFileReader派生而不是Reader,通过使Reader内部的唯一构造函数:

public abstract class Reader
{
    internal Reader()
    {
    }
}

public abstract class CustomFileReader : Reader
{
    // Public and protected constructors here
}

现在任何试图直接从程序集外部的Reader继承的东西都会被告知它无法找到一个可访问的基类构造函数。