目前我以这种方式跟踪基类的实例数量:
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
获取异常是否意味着我真的尝试根据上述代码创建多个实例?