TObjectList появится в двух единицах - PullRequest
0 голосов
/ 24 октября 2018

Я использую Delphi XE3.При поиске справок по TObjectList я нахожу, что он отображается в двух единицах:

http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Contnrs.TObjectList

и

http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Generics.Collections.TObjectList

В таком случаекакой блок я должен включить, чтобы использовать класс?Кроме того, чем отличаются TObjectList от TList, я просто вижу TObjectList = class (TList) в первом документе, поэтому TObjectList идентичен TList?

Спасибо

1 Ответ

0 голосов
/ 24 октября 2018

System.Contnrs.TObjectList - старая устаревшая неуниверсальная версия списка объектов.

System.Generics.Collections.TObjectList<T> - более новая версия Generic.

См. Обзор универсальных .

Используйте в зависимости от ваших потребностей.

Неуниверсальный TList - это просто список необработанных указателей.Он не делает ничего особенного с указателями, которые хранятся в нем.

Неуниверсальный TObjectList является производным от TList, чтобы добавить дополнительную обработку общего назначения TObjectуказатели, такие как добавление свойства OwnsObjects, которое позволяет списку освобождать сохраненные объекты при освобождении самого списка.

Универсальный TList<T> похож, но не является производным от неуниверсальногоTList, где T может быть любого типа, указатель даже не обязательно должен быть указателем (например, TList<Integer>).

Общий TObjectList<T> аналогичендля, но не производного от неуниверсального TObjectList, где T может быть любым типом класса, производным от TObject.

...