问题
I see people declaring their TLists like
MyList : TList<PSomeType>;
Whereafter when they create it, they do
MyList := TList<PSomeType>.Create;
So I asume that by doing that, they won't have to typecast the MyList.Items[I] whenever they are using it, like:
ShowMessage( PSomeType(MyList.Items[I]).SomeTextProperty );
So instead they would just do
ShowMessage( MyList.Items[I].SomeTextProperty );
Is that correct?
If so, then why can't I get it to work in Delphi 2010? I am trying exactly that - Declaring my list as
MyList : TList<PSomeType>;
But the compiler says:
Undeclared Identifier: TList<>
What am I doing wrong there?
回答1:
These people are using a generic list. TList<T>
is a generic version of TList, and it's declared in the unit Generics.Collections
, not in Classes
, where TList
is. Add Generics.Collections
to your uses list and you should be fine.
来源:https://stackoverflow.com/questions/5601822/using-angle-brackets-i-have-seen-people-using-tlistpsomething