由于TBytes
,TByteDynArray
和array of Bytes
都是动态字节数组,因此可以将类型变量安全地相互映射吗? (如果我有一个TBytes
的变量,我可以在使用定义参数为TByteDynArray
的方法时将其简单地转换为TByteDynArray
,反之亦然?)
答案 0 :(得分:10)
这种类型转换在我遇到的所有Delphi实现中都是完全安全的。
然而,像这样重新解释类型转换删除类型检查,总是存在未来对源代码的更改可能导致难以跟踪错误的风险。如果可能的话,我会尽量避免施法。例如,您可以做的最简单的事情是避免在代码中使用array of Byte
作为类型并切换到TBytes
。
如果你必须施放,然后将其包装在一个函数中,以减轻我上面描述的风险。
function Bytes(const B: TByteDynArray): TBytes;
begin
Result := TBytes(B);
end;