我有一个带有线程静态字段的通用抽象类,定义如下:
abstract MyClass<T>
{
[ThreadStatic]
private static bool A;
}
一旦我从这个班级派生出来:
MyOtherClass : MyClass<string>
字段A会发生什么?
并且,如果字段是每个派生类,如果我这样做:
MyOtherClass1 : MyClass<string>
MyOtherClass2 : MyClass<bool>
MyOtherClass3 : MyClass<string>
由于 MyOtherClass1 和 MyOtherClass3 具有相同的类型,是否会共享字段?
答案 0 :(得分:8)
派生类没有静态变量的单独副本。具有不同泛型类型参数的泛型类的用法,但是 do 每个都有自己的static
变量副本。因此,MyOtherClass1
和MyOtherClass3
将共享相同的变量,因为它们具有MyClass
的相同泛型类型参数,而MyOtherClass2
将具有不同的变量集,因为它不会&# 39; t共享相同的通用参数。