我有一个内部课程:
internal abstract class Reader
{
//internal abstract void methods
}
我无法上课:
public abstract class CustomFileReader : Reader
{
}
因为它比它继承的类更明显。我想这样做是为了强制你必须继承Reader类的公共可访问的继承者而不是基类。这是可能的还是我必须暴露基类?
答案 0 :(得分:11)
您不能在internal
类的继承树中拥有public
类,但可以强制用户从CustomFileReader
派生而不是Reader
,通过使Reader
内部的唯一构造函数:
public abstract class Reader
{
internal Reader()
{
}
}
public abstract class CustomFileReader : Reader
{
// Public and protected constructors here
}
现在任何试图直接从程序集外部的Reader
继承的东西都会被告知它无法找到一个可访问的基类构造函数。