我试图了解C#中的嵌套类.我知道嵌套类是在另一个类中定义的类,我没有得到的是为什么我需要这样做.
为什么要允许编译这段代码?
public abstract class AbstractPrivateBase
{
private AbstractPrivateBase() { }
}
Run Code Online (Sandbox Code Playgroud)
继承者无法实例化自己.因此,没有办法从这个类派生出来.我觉得Visual Studio(甚至Resharper)应该显示一个错误,说明"抽象类不能只包含私有构造函数".因为在语言中允许这样做是没有意义的.
唯一可能的用法是此类包含静态成员.如果是这种情况,一个友好的警告说明"只有私有构造函数的抽象类可以变成静态的".因为没有办法访问任何其他成员而不是静态成员.