your tool river programa phone para liberar gratis español cualquier como celulares celular banana delphi generics generic-list

delphi - tool - ¿Cómo liberar un TList genérico<T>?



unlock (1)

Resumen ejecutivo

MyList.Free es suficiente.

Respuesta detallada

El contenedor genérico TList<T> posee sus contenidos. Cuando liberas el contenedor, los contenidos también se eliminan.

Ahora, si T es una referencia no administrada, ya sea un puntero o una clase, entonces la lista posee la referencia. No posee aquello a lo que se refiere la referencia. Entonces, si tiene TList<TObject> , agregue algunos objetos y luego libere la lista, las referencias se descartan, pero los objetos permanecen. Entonces, para resolver esto, hay TObjectList<T> . Ese contenedor se puede configurar para que posea tanto los objetos como las referencias y, por lo tanto, elimine los objetos en el momento apropiado.

Ahora, en su escenario, cada una de sus listas contiene un tipo de valor o un tipo administrado. La lista posee esos objetos y los descarta cuando se destruye. Entonces, para todas sus listas, MyList.Free es todo lo que se necesita.

TList<string> listas genéricas como TList<string> , TList<Double> , TList<Integer> o TList<TMyRecord> , donde TMyRecord se declara como:

type TMyRecord = record MyString: string; MyDouble: Double; MyInteger: Integer; end;

requiere algún trabajo adicional o ¿ MyList.Free es suficiente?