C# 泛型继承中的静态成员字段问题

静态字段,一般都是在所有实例之间共享的值,全局唯一和和类绑定,其他实例修改之后会随之修改。是不是所有静态成员都共享呢?泛型继承中的静态成员共享吗?

1.先来说几句泛型,泛型分为开放类型(类型参数未确定,例如Genneric <T>)封闭类型(类型参数已确定,不能更改,例如Genneric<int>),在程序运行时都已经转换成封闭类型。

泛型中的<T>,表示这是类型占位符,他不是一个特定类型,他可以代表所有类型。

2.首先,泛型中的静态成员不是唯一的,原因如下:

泛型的每一种类型,都是由运行时现场合成的,编译器使用实际类型参数代替泛型参数时,会合成不同的实例类型,其中的静态字段也会在不同的实例类型中重新生成,这样合成之后的封闭泛型类型,都有属于他自己的静态字段,也就只能在确定的这一个T类型中共享,如果再次定义的其他泛型类型时,就必须重新赋值。

3.举例说明,如下图:

另外可以仔细看看这篇文章C#泛型类的静态构造函数及静态成员[经典]_zfrong的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/Ling_SevoL_Y/article/details/128465135