Streszczenie
MyList.Free
jest wystarczająca.
Szczegółowa odpowiedź
TList<T>
generic pojemnik posiada jego zawartość. Po zwolnieniu pojemnika zawartość jest również usuwana.
Teraz, jeśli T
jest odniesieniem niezarządzanym - wskaźnikiem lub klasą, to lista jest właścicielem odwołania. Nie jest właścicielem tego, do czego odnosi się odwołanie. Więc jeśli masz TList<TObject>
, dodaj niektóre obiekty, a następnie zwolnij listę, odniesienia są usuwane, ale obiekty pozostają. Tak więc, aby sobie z tym poradzić, jest TObjectList<T>
. Ten kontener można skonfigurować tak, aby był właścicielem zarówno obiektów, jak i odniesień, a zatem pozbywał się obiektów w odpowiednim momencie.
Teraz, w twoim scenariuszu, każda twoja lista zawiera albo typ wartości, albo typ zarządzany. Lista posiada te obiekty i usuwa je, gdy zostaną zniszczone. Tak więc dla wszystkich twoich list jest wszystko, co jest potrzebne.
+1. Bardzo ładnie napisane pytanie. –