加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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是所有需要的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读