gpt4 book ai didi

delphi - 如何释放通用 TList

转载 作者:行者123 更新时间:2023-12-03 14:33:37 25 4
gpt4 key购买 nike

是否释放像 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这就是所需要的一切。

关于delphi - 如何释放通用 TList<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15706943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com