我正在使用Delphi XE3。在搜索TObjectList的帮助时,我发现它以两个单位出现:

http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Contnrs.TObjectList



http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Generics.Collections.TObjectList

在这种情况下,使用该类应该包括哪个单元? TObjectList和TList之间也有什么区别,我只是在第一个文档中看到TObjectList = class(TList),所以TObjectList与TList相同?

谢谢

最佳答案

System.Contnrs.TObjectList是对象列表的较旧的旧版非通用版本。

System.Generics.Collections.TObjectList<T>是较新的通用版本。

请参见Overview of Generics

使用适合您需求的任何一种。

非泛型TList只是原始指针的列表。它对存储在其中的指针没有任何特殊的作用。

非通用TObjectList派生自TList,以添加对通用TObject指针的额外处理,例如添加OwnsObjects属性,该属性允许在列表本身被释放时释放列表中的存储对象。

通用TList<T>与非通用TList相似,但不是从非通用T派生的,其中TList<Integer>可以是任何类型,甚至不需要是指针(例如TObjectList<T>)。

泛型TObjectList与非泛型T相似,但并非派生自其中,TObject可以是源自的任何类类型。

关于delphi - TObjectList以两个单位出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52965187/

10-09 16:57