delphi – 如何释放一个通用的TList?

前端之家收集整理的这篇文章主要介绍了delphi – 如何释放一个通用的TList?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
释放泛型列表,如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相关文章