抽象定义包含类实例的字段

时间:2018-10-30 15:26:05

标签: c# constructor static abstract

我有一个抽象类

abstract class ClassA
{
}

和一些继承的非抽象类

class ClassB : ClassA
{
}

class ClassC : ClassA
{
}

对于所有继承的类,我希望有一个名为“ Instance”的静态字段,该字段是该类的实例,由无参数构造函数创建。一种定义方式是:

class ClassB : ClassA
{
    public static ClassA Instance = new ClassB();
}

class ClassC : ClassA
{
    public static ClassA Instance = new ClassC();
}

但是为了最小化冗余,我想在ClassA中定义此字段。我怎么做?是否有类似下面的结构(伪代码)?

abstract class ClassA
{
    public static readonly ClassA Instance = CallConstructorOfActualClass();
}

为什么需要这个:因为我想模拟抽象的静态吸气剂。对于每个类,我想存储一些应该静态运行的数字(=不需要类实例),但是每个类不同(例如ClassB有2个,ClassC有5个)。既然那行不通,我将在ClassA中创建一个抽象的(非静态)getter,并且对于可以从中调用该getter的任何继承(非抽象)类,始终具有一个静态的Instance字段。 / p>

0 个答案:

没有答案