鉴于泛型类型为每个类型组合创建单独的静态字段实例,如果我想在所有类型中都有一个静态字段,这是一个有效的模式吗?
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);
}
}
这种方法有什么不安全的地方吗?我的玩具示例有效,但我只是想确保没有可怕的副作用、线程后果等 :)