ジェネリック型が型の組み合わせごとに静的フィールドの個別のインスタンスを作成することを考えると、これは、すべての型にわたって静的フィールドを持ちたい場合に使用する有効なパターンですか?
public class BaseClass
{
public static int P = 0;
}
public class ChildClass<T> : BaseClass
{
public static int Q = 0;
public void Inc()
{
// ChildClass<int> will have a different "Q" than ChildClass<double>
Interlocked.Increment(ref Q);
// all types of ChildClass will increment the same P
Interlocked.Increment(ref P);
}
}
このアプローチで危険なことはありますか? 私のおもちゃの例は機能しますが、恐ろしい副作用やスレッドの結果などがないことを確認したかっただけです:)