Das kannte ich auch noch nicht:
Delphi-Quellcode:
type
TNamespace = class
class procedure AcceptBytes1(const bytes: array of byte);
class procedure AcceptBytes2(const bytes: TBytes {=TArray<Byte>});
end;
procedure p();
var
someByte: Byte;
begin
someByte := 42;
TNameSpace.AcceptBytes1(someByte); // Warum geht das !?!
//TNameSpace.AcceptBytes2(someByte); // E2010 - Inkompatible Typen
TNameSpace.AcceptBytes1([someByte]);
TNameSpace.AcceptBytes2([someByte]);
end;
Warum kann ich in
AcceptBytes1(..)
einfach ein Byte reinstecken wenn der Parameter eigentlich
array of byte
wäre?
Und warum ist das ein Unterschied ob ich es "array of byte" oder "TArray<Byte>" ist? Das habe ich nach all den Jahren mit Delphi ehrlich gesagt immer noch nicht verstanden...