TObjectList以两个单位出现

时间:2018-10-24 09:13:41

标签: delphi delphi-xe3

我正在使用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相同?

谢谢

1 个答案:

答案 0 :(得分:6)

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

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

请参见Overview of Generics

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

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

TObjectList 派生非泛型TList来添加对通用TObject指针的额外处理,例如添加{{1} }属性,当列表本身被释放时,允许列表释放存储的对象。

通用OwnsObjects与非通用TList<T>类似,但不是从非通用TList派生而来,其中T可以是 any 类型,但不能甚至需要成为一个指针(例如TList<Integer>)。

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