我有一个带有线程静态字段的通用抽象类,定义如下:
abstract MyClass<T>
{
[ThreadStatic]
private static bool A;
}
Run Code Online (Sandbox Code Playgroud)
一旦我从这个班级派生出来:
MyOtherClass : MyClass<string>
Run Code Online (Sandbox Code Playgroud)
A场怎么了?
并且,如果字段是每个派生类,如果我这样做:
MyOtherClass1 : MyClass<string>
MyOtherClass2 : MyClass<bool>
MyOtherClass3 : MyClass<string>
Run Code Online (Sandbox Code Playgroud)
由于MyOtherClass1和MyOtherClass3具有相同的类型,是否会共享字段?
派生类没有静态变量的单独副本.然而,随着不同的泛型类型参数的泛型类的用法做每个人都有自己的副本static变量.所以MyOtherClass1并且MyOtherClass3将共享相同的变量,因为它们具有相同的泛型类型参数MyClass,并且MyOtherClass2将具有不同的变量集,因为它不共享相同的泛型参数.