Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使内部类中的类公开可见?_C# - Fatal编程技术网

C# 无法使内部类中的类公开可见?

C# 无法使内部类中的类公开可见?,c#,C#,我有一个内部类: internal abstract class Reader { //internal abstract void methods } 我不能上这门课: public abstract class CustomFileReader : Reader { } 因为它比它从中继承的类更可见。我想这样做是为了强制您必须从Reader类而不是基类的可公开访问的继承器继承。这是可能的还是我必须公开基类?在公共类的继承树中不能有内部类,但可以强制用户从自定义文件阅读器派生,而不

我有一个内部类:

internal abstract class Reader
{
    //internal abstract void methods
}
我不能上这门课:

public abstract class CustomFileReader : Reader
{
}

因为它比它从中继承的类更可见。我想这样做是为了强制您必须从Reader类而不是基类的可公开访问的继承器继承。这是可能的还是我必须公开基类?

公共
类的继承树中不能有
内部
类,但可以强制用户从
自定义文件阅读器
派生,而不是
阅读器
,方法是将
阅读器
的唯一构造函数设置为内部:

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

public abstract class CustomFileReader : Reader
{
    // Public and protected constructors here
}
现在,任何试图直接从程序集外部的
Reader
继承的东西都会被告知找不到可访问的基类构造函数