C# type rebinding, very ngerful

本文通过一个C#程序示例介绍了如何模拟C++中常见的泛型类型重绑定功能。示例展示了如何定义泛型类及其实现,并通过特定方式实现类型重绑定。

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

C# type rebinding,a program demonstrating what I can figure out about simulating
generic type rebinding in C# (which is so common in C++ programs), it may look
stupid, but it really works as intended.

using System; class BaseG { public class ReboundType<_T> { public virtual _T T {get; set;} public virtual void Do() {} } public virtual ReboundType<_T> Rebind<_T>() { return new ReboundType<_T>(); } } class G : BaseG { public new class ReboundType<_T> : BaseG.ReboundType<_T> { _T t; public override _T T { get {return t;} set{t = value;} } public override void Do() { Console.WriteLine("G.ReboundType<>.t = {0}", t); } } public override BaseG.ReboundType<_T> Rebind<_T>() { return new ReboundType<_T>(); } } class User<_G> where _G : BaseG, new() { BaseG.ReboundType<String> gs = new _G().Rebind<String>(); public void Test() { gs.T = "abc"; gs.Do(); } } class App { static void Main(String[] args) { User<G> ug = new User<G>(); ug.Test(); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值