У меня есть родительский тип, и от него наследуются некоторые дочерние типы.
Я хочу убедиться, что существует только один экземпляр родительского типа, а также для всех дочерних типов.Родительский тип:
private static int _instanceCount = 0;
public ParentClass()
{
protected ParentClass() // constructor
{
_instanceCount++;
if (_instanceCount > 1)
throw new exception("Only one instance is allowed.");
}
}
Пример дочернего класса:
private static int _instanceCount = 0;
public ChildClass() : ParentClass
{
public ChildClass() : base() // constructor
{
_instanceCount++;
if (_instanceCount > 1)
throw new exception("Only one instance is allowed.");
}
}
Решение работает для дочерних типов, но когда они вызывают конструктор базового класса, я не могу отличить, вызывается ли базовый конструктор от другогоТипы или нет, так что решение терпит неудачу.
Как я могу добиться этого?