对通过引用传递到proc的数组执行SetLength

时间:2010-05-23 01:35:14

标签: delphi

当然,即使我能做到这一点......

var
  testarray : array of string;

setlength(testarray, 5);

但是如果我想变得聪明并且有一个程序我通过这样的referance传递数组我不能这样做!

procedure DoStuffWithArray(var passedarray : array of string);
begin
  setlength(passedarray, 5);
end;

编译器在我的proc中的单行代码中说“不兼容的类型”。

如果我在调用proc之前执行setlength,我可以在数组上执行其他内容,例如设置set元素值,但是我不能在proc中执行setlength,这是我想要做的。

非常感谢任何帮助,谢谢大家。

1 个答案:

答案 0 :(得分:17)

作为参数的数组类型需要具有名称。所以:

type TStringArray = array of string;
procedure DoStuffWithArray(var passedarray: TStringArray);

然后它会起作用。

但是如果你需要一个动态大小的字符串组,你可能会发现TStringList更容易使用。

相关问题