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

本文解释了泛型类中的静态成员并非全局唯一,而是针对每种泛型类型独立存在。通过实例说明,当泛型参数变化时,即使静态成员名称相同,其实际对应的字段也会不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

3.举例说明,如下图:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值