Delphi TList<T> генерики

Может кто-нибудь объяснить мне, если это возможно, или я совершенно не понимаю эту функцию Delphi.

Допустим, у меня есть класс, я создаю несколько из них, а затем добавляю их в ObjectList. Обычно я делаю это так:

Type TMyClass = class(TObject)
  stuff: string;
..
end;

Var things: TObjectList;

things := TObjectList.Create;
things.Add(TMyClass.Create);

// now I want to access stuff, so I need to typecast the class
TMyClass(things[0]).stuff..

Итак, теперь мой вопрос, возможно ли объявить список таким образом, чтобы я мог просто делать что-то вроде... things[0].stuff и при этом иметь доступ к обычным функциям TObjectList, таким как.sort .indexof и т. Д.? (без создания специального класса для этого, чтобы моделировать список объектов)

1 ответ

Решение

Вы используете TObjectList из System.Contnrs, который управляет списком указателей.

Вы хотите TObjectList от System.Generics.Collections. Я знаю, использование одного и того же имени может быть немного запутанным.

Type TMyClass = class(TObject)
  stuff: string;
..
end;

Var things: TObjectList<TMyCLass>;

things := TObjectList<TMyCLass>.Create;
things.Add(TMyClass.Create);

things[0].stuff..
Другие вопросы по тегам