delphi – 清除一个TList或一个TObjectList

前端之家收集整理的这篇文章主要介绍了delphi – 清除一个TList或一个TObjectList前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于将对象存储在列表中的用法有些困惑.
到目前为止,我已经使用了TList并在循环中释放了每个项目.然后我发现TObjectList自动从Free中执行.然后我从TList.Clear的文档中看到这个:

Call Clear to empty the Items array and set the Count to 0. Clear also
frees the memory used to store the Items array and sets the Capacity to 0.

所以基本上是一样的所以

为TList

mylist.Clear;
myList.Free;

与TObjectList一样吗?

myList.Free;

TObjectList只能用作项目类或可以存储记录吗?

解决方法

TList不会释放元素,包括清除或自由.

aList.Clear;

将只设置aList.Count:= 0而不释放aList.Items []元素.所以你会泄漏内存.你需要一个明确的免费:

for i := 0 to aList.Count-1 do
  TObject(aList[i]).Free;

但这是什么TObjectList做…

猜你在找的Delphi相关文章