delphi – 如何释放一个通用的TList?
发布时间:2020-12-15 10:18:49 所属栏目:大数据 来源:网络整理
导读:释放泛型列表,如TList string,TListDouble,TList Integer或TList TMyRecord,其中TMyRecord被声明为: type TMyRecord = record MyString: string; MyDouble: Double; MyInteger: Integer; end; 需要任何额外的工作或是MyList.Free足够吗? 解决方法 执行
释放泛型列表,如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是所有需要的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |