gpt4 book ai didi

delphi - 将具有不同通用类型的对象放在一起

转载 作者:行者123 更新时间:2023-12-03 19:36:06 27 4
gpt4 key购买 nike

给定泛型

TMyClass <T> = class
...
end;


有没有办法将多个实例(实例化不同的类型)放在一起

FList : TList <TMyClass>;
FList.Add (TMyClass <Integer>.Create);
FList.Add (TMyClass <String>.Create);


要么

FArray : array [0..1] of TMyClass;
FArray [0] := TMyClass <Integer>.Create;
FArray [1] := TMyClass <String>.Create;


我知道这段代码无法编译。但是有可能实现这样的目标吗?

最佳答案

如果使用TMyClass的祖先创建FList,则可以执行此操作。

泛型不是继承,因此TMyClass不是TMyClass的祖先。

TMyAbstractClass = class
TMyClass <T> = class (TMyAbstractClass)
...
end;

FList : TList <TMyAbstractClass>;
FList.Add (TMyClass <Integer>.Create);
FList.Add (TMyClass <String>.Create);

FArray : array [0..1] of TMyAbstractClass;
FArray [0] := TMyClass <Integer>.Create;
FArray [1] := TMyClass <String>.Create;

关于delphi - 将具有不同通用类型的对象放在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1205822/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com