Copy TBytes 会创建一个 TRUE 副本吗?

Does Copy TBytes create a TRUE copy?

function TFormMain.GetMyTBytes(const AFileName: string): TBytes;
begin
  with TFileStream.Create(AFileName, fmOpenRead or fmShareDenyNone) do
  try
    SetLength(Result, Size);
    ReadBuffer(PByte(Result)^, Size);
  finally
    Free;
  end;
end;  

// ... 

var
  TBA, TBB: TBytes;

// ...

TBA := GetMyTBytes('C:\mydoc.docx');
TBB := Copy(TBA);

在这种情况下是否可以排除TBB在此操作结束时与TBA共享任何内存?

Copy() 在内存中创建数组数据的副本。复制完成后,TBATBB 之间没有任何共享。

此外,您的 GetMyTBytes() 是多余的,System.IOUtils 单元有一个 TFile.ReadAllBytes() 方法可用。