5

有人可以向我解释这是否可能,或者我完全误解了这个 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 等。(没有为此创建一个特殊的类来模拟对象列表)

4

1 回答 1

7

您正在使用System.Contnrs 中的 TObjectList,它管理指针列表。

您需要System.Generics.Collections 中的 TObjectList。我知道,使用相同的名称可能会有点混乱。

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

Var things: TObjectList<TMyCLass>;

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

things[0].stuff..
于 2014-10-27T00:28:37.440 回答