【发布时间】:2019-11-26 07:11:08
【问题描述】:
如何释放通用 TList<T>?
我知道我可以在创建 TObjectList 和 AOwnsObjects = True 时使用它。
我很好奇,当T 是非托管引用(指针或类)时,如何以通用方式重写以下方法,以便释放T?
procedure FreeList(const List: TList);
var
i: Integer;
begin
if (List = nil) then
Exit;
for i := Pred(List.Count) downto 0 do
if Assigned(List[i]) then
TObject(List[i]).Free;
List.Clear;
end;
【问题讨论】:
-
这不会释放列表,只是清除它。
-
为什么需要处理任意元素类型?使用
TObjectList<T>,没有什么可做的了。
标签: delphi