В настоящее время я отслеживаю количество экземпляров базового класса следующим образом:
private static int _instanceCount = 0;
protected BaseClass()
{
Interlocked.Increment(ref _instanceCount);
if (_instanceCount > 1)
throw new Exception("multiple instances detected.");
}
Затем у меня есть дочерние классы с конструктором, подобным этому:
public ChildClass(): base()
{
// Empty Constructor
}
, и я получаю исключения из курса,Я могу переместить код из конструктора BaseClass
в конструктор ChildClass
, но это своего рода избыточность (все дочерние элементы с одинаковым кодом).
Есть ли способ сделать это в BaseClass
?
Значит ли получение исключения означает, что я действительно пытался создать более одного экземпляра ChildClass
в соответствии с приведенным выше кодом?