我已经宣布了不少变量,是否安全,与在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