3

我看到人们声明他们的 TLists

MyList : TList<PSomeType>;

之后,当他们创建它时,他们会

MyList := TList<PSomeType>.Create;

所以我假设通过这样做,他们不必在使用 MyList.Items[I] 时对它进行类型转换,例如:

ShowMessage( PSomeType(MyList.Items[I]).SomeTextProperty );

所以相反,他们会做

ShowMessage( MyList.Items[I].SomeTextProperty );

那是对的吗?

如果是这样,那为什么我不能让它在 Delphi 2010 中工作呢?我正在尝试 - 将我的列表声明为

MyList : TList<PSomeType>;

但是编译器说:

未声明的标识符:TList<>

我在那里做错了什么?

4

1 回答 1

15

这些人使用的是通用列表。 TList<T>是 TList 的通用版本,它在 unit 中声明Generics.Collections,而不是在Classeswhere TListis 中。添加Generics.Collections到您的使用列表中,您应该没问题。

于 2011-04-08T23:42:50.843 回答