現在、私はこの方法で基本クラスのインスタンス数を追跡しています:
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
上記のコードに従って、本当に複数のインスタンスを作成しようとしたことを意味しますか?