Array of Xyz
deklariert einen "neuen" Array-Typen. (hier muß man aufpassen, denn als Methoden-Parameter hat das nochmal eine ganz andere Bedeutung -> offerner Array-Parameter)
Diese Arrays sind zwar "gleich", aber nicht identisch/kompatibel -> haben jeweils ihre eigene
RTTI-Definition.
Das ist wie mit
type TMyClassA = class end; TMyClassB = class end;
, welches nicht die "selbe" Klasse ergibt, obwohl es "gleich" aussieht.
TArray<Xyz>
ist die generische Version des
Array of Xyz
, also intern das Selbe, nur sorgen die Generics dafür, daß alle
TArray<Xyz>
im Programm (im selben Binary -> EXE/
DLL) dem "selben" Typen entsprechen.
PS: Auch schon vor den Generics war das Problem bekannt, drum gibt es Typen ala
TIntegerDynArray.