泛型编程全解析:从基础到约束应用
1. 泛型方法的内存特性
在泛型编程中,编译器会为不同数据类型的泛型方法生成不同版本的内存实现。例如以下代码:
t1.SetT (10);
t1.One;
t2 := TSampleClass<string>.Create;
t2.SetT ('hello');
t2.One;
Show ('t1.SetT: ' +
IntToHex (PInteger(@TSampleClass<Integer>.SetT)^, 8));
Show ('t2.SetT: ' +
IntToHex (PInteger(@TSampleClass<string>.SetT)^, 8));
Show ('t1.One: ' +
IntToHex (PInteger(@TSampleClass<Integer>.One)^, 8));
Show ('t2.One: ' +
IntToHex (PInteger(@TSampleClass<string>.One)^, 8));
运行结果可能如下(实际值会有所不同):
t1.SetT: C3045089
t2.SetT: 51EC8B55
t1.One: 4657F0BA
t2.One: 46581CBA
这表明不仅 SetT 方法,即使是 One 方法,编译器也会为不同的数据类型生成不同的内存版本,尽管这些方法的
超级会员免费看
订阅专栏 解锁全文
45

被折叠的 条评论
为什么被折叠?



