静态字段,一般都是在所有实例之间共享的值,全局唯一和和类绑定,其他实例修改之后会随之修改。是不是所有静态成员都共享呢?泛型继承中的静态成员共享吗?
1.先来说几句泛型,泛型分为开放类型(类型参数未确定,例如Genneric <T>)封闭类型(类型参数已确定,不能更改,例如Genneric<int>),在程序运行时都已经转换成封闭类型。
泛型中的<T>,表示这是类型占位符,他不是一个特定类型,他可以代表所有类型。
2.首先,泛型中的静态成员不是唯一的,原因如下:
泛型的每一种类型,都是由运行时现场合成的,编译器使用实际类型参数代替泛型参数时,会合成不同的实例类型,其中的静态字段也会在不同的实例类型中重新生成,这样合成之后的封闭泛型类型,都有属于他自己的静态字段,也就只能在确定的这一个T类型中共享,如果再次定义的其他泛型类型时,就必须重新赋值。
3.举例说明,如下图:
另外可以仔细看看这篇文章C#泛型类的静态构造函数及静态成员[经典]_zfrong的博客-CSDN博客