前端之家收集整理的这篇文章主要介绍了
delphi – 如何释放一个通用的TList?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
释放泛型列表,如TList< string>,TList&Double>,TList< Integer>或TList< TMyRecord>,其中TMyRecord被声明为:
type
TMyRecord = record
MyString: string;
MyDouble: Double;
MyInteger: Integer;
end;
需要任何额外的工作或是MyList.Free足够吗?
执行
摘要
MyList.Free就足够了
详细答案
TList< T>通用容器拥有其内容。当您释放容器时,内容也会被处理掉。
现在,如果T是非托管引用,指针或类,则列表拥有引用。它不属于引用所指的。所以如果你有TList< TObject>,添加一些对象,然后释放列表,引用被处理,但是对象仍然存在。所以,为了处理这个,有TObjectList< T>。该容器可以配置为拥有对象以及引用,因此在适当的时候处理对象。
现在,在您的方案中,每个列表都包含值类型或托管类型。列表在销毁时拥有这些对象并处理它们。所以对于所有的列表,MyList.Free是所有需要的。
原文链接:https://www.f2er.com/delphi/103553.html