【发布时间】:2011-09-06 13:41:49
【问题描述】:
我需要释放存储在 ArrayList 中的对象列表。我知道你可以在 Delphi 中调用 Free 程序,但在 Delphi Prism 中没有免费程序。我不仅要从列表中删除对象,还要将其从内存中释放出来。
例如说我有下面这个类
TheClass = Class
private
theStr:String;
protected
public
end;
method TheForm;
begin
TheArrayList:=new ArrayList;
end;
要添加对象,我会这样做:
method TheForm.AddToList;
var
tmpObj:TheClass;
begin
tmpObj := new TheClass;
TheArrayList.Add(tmpObj);
end;
要从列表中删除对象,我会这样做,但没有免费的 过程。
method TheForm.DeleteFromList;
var I:integer;
begin
for I:=0 to theArrayList.count-1 do
begin
theClass(theArrayList[I]).free; <-------I know this doesnt work.
theArrayList.RemoveAt(I);
end;
end;
end;
Delphi Prism 中如何释放对象列表?
谢谢,
【问题讨论】:
-
这是带有垃圾收集器的 .net。让它决定何时释放记忆。
-
@大卫,好的。但是如果有一种情况需要强制释放对象,而不是等待垃圾收集器。
标签: delphi object arraylist free delphi-prism