【发布时间】:2012-05-02 08:15:17
【问题描述】:
我对在列表中存储对象使用什么感到有点困惑。
到目前为止,我一直使用TList 并在循环中释放每个项目。然后我发现TObjectList 从Free 自动执行此操作。然后我从TList.Clear的文档中看到了这个:
调用
Clear清空Items数组并将Count设置为0。Clear也 释放用于存储Items数组的内存并将Capacity设置为0。
所以基本上是一样的。所以
为TList
mylist.Clear;
myList.Free;
和TObjectList一样吗?
myList.Free;
TObjectList 可以仅用于作为类的项目还是可以存储记录?
【问题讨论】:
-
如果你不仔细阅读TObjectList文档,你引用的部分只是“基本相同”:“如果OwnsObjects属性设置为true(默认),TObjectList控制它的内存对象,当它的索引被重新分配时释放一个对象;当它使用 Delete、Remove 或 Clear 方法从列表中删除时;或者当 TObjectList 实例本身被销毁时。 TList 的文档没有说明这种行为。这是两个类之间的根本区别。
标签: delphi delphi-2007 tlist