我正在使用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相同?
谢谢
答案 0 :(得分:6)
System.Contnrs.TObjectList
是对象列表的较旧的旧版非通用版本。
System.Generics.Collections.TObjectList<T>
是较新的通用版本。
使用适合您需求的任何一种。
非泛型TList
只是原始指针的列表。它对存储在其中的指针没有特殊的作用。
从TObjectList
派生非泛型TList
来添加对通用TObject
指针的额外处理,例如添加{{1} }属性,当列表本身被释放时,允许列表释放存储的对象。
通用OwnsObjects
与非通用TList<T>
类似,但不是从非通用TList
派生而来,其中T
可以是 any 类型,但不能甚至需要成为一个指针(例如TList<Integer>
)。
泛型TObjectList<T>
与非泛型TObjectList
相似,但并非派生自其中,其中T
可以是从TObject
派生的任何类类型。