Der Parameter als "OpenArray", also
function GetString(const Bytes: array of Byte): string;
würde alle Arten von Byte-Arrays entgegennehmen, seien es dynamische Arrays, unterschiedlich große statische Arrays oder gar eine direkte Konstante/Variable ala
[1, 2, 3, 4, 5, EineByteVariable, OderEineKonstante, 6, 7, 8]
.
TBytes, so wie es früher mal deklariert war, und wie es im
INDY auch immernoch Eines gibt, ala
TBytes = array of byte;
nimmt nur genau diesen Typen entgegen.
Aber
TBytes = TArray<Byte>;
dagegen nimmt alles an, was irgendwie von TArray<Byte> abgeleitet ist. (generische Deklaration verhalten sich da anders, als "normale" Deklarationen)