我有一个抽象类
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>