我声明了相当多的变量为
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
来释放动态数组类型的内存。它们是引用计数类型,只要Something
超出作用域,内存就会自动释放,除非它们仍被另一个变量引用。无论哪种方式,它的行为与将其长度设置为零一样。 - user743382