我是Delphi的新手,正在努力解决内存管理的问题。我有一个类TFileData,它是动态分配的并且被放入列表中。每当我从文件重新加载数据时,我需要释放旧对象并分配新对象。
为了分配,我使用以下函数:
function TImportXmlForm.GetLanguageFileData: TList<TFileData>;
begin
if FAllFiles = nil then
FAllFiles := TList<TFileData>.Create;
Result := FAllFiles;
end{function};
释放内存:
if Assigned(FAllFiles) then
begin
while FAllFiles.Count > 0 do
begin
FAllFiles.Items[0].Free;
FAllFiles.Delete(0);
end;
FAllFiles.Free;
FAllFiles := nil;
end{if};
这种编程模式的“最佳实践”是什么?
TFileData
定义为一个record
,然后使用TList<TFileData>
、TDictionary<...,TFileData>
或者只是array of TFileData
。 - Arioch 'The