我已經宣佈了不少變量,是否安全,與在tarray代替XXX的陣列<XXX>
var
Something: array of XXX;
begin
SetLength(Something, 10);
try
...
finally
SetLength(Something, 0);
end;
end;
多大程度上是安全,讓他們代替:
var
Something: TArray<XXX>;
begin
SetLength(Something, 10);
try
...
finally
SetLength(Something, 0);
end;
end;
請注意:您不需要使用'try' /'finally'來釋放動態數組類型的內存。它們是refcounted類型的,一旦'Something'超出範圍,內存就會自動釋放,除非它們仍然被另一個變量引用。無論哪種方式,它的行爲與你的'SetLength'長度相同。 – hvd