Ответ 1
Такие приемы типа совершенно безопасны во всех реализациях Delphi, с которыми я когда-либо сталкивался.
Тем не менее, при интерпретации типов переинтерпретации, подобные этой проверке типов, всегда существует риск того, что будущие изменения исходного кода могут привести к серьезным ошибкам трассировки. Я всегда старался избегать кастинга, если это возможно. Например, самое простое, что вы можете сделать, это не использовать array of Byte
как тип кода и переключиться на TBytes
.
Если вы должны бросить, то сверните его в функцию, чтобы уменьшить риски, описанные выше.
function Bytes(const B: TByteDynArray): TBytes;
begin
Result := TBytes(B);
end;