delphi – 通过引用传递给proc的数组执行SetLength

前端之家收集整理的这篇文章主要介绍了delphi – 通过引用传递给proc的数组执行SetLength前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当然,即使我可以做到这一点
var
  testarray : array of string;

setlength(testarray,5);

但是如果我想得到聪明的程序,我通过这样的引用传递数组,我无法做到这一点!

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

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

我可以在数组上做其他的东西,就像set set元素值,如果我在调用proc之前做一个setlength,但是我不能在我的proc中做setlength,这是我想要做的.

任何帮助非常感谢,谢谢所有.

解决方法

作为参数的数组类型需要有一个名称.所以:
type TStringArray = array of string;
procedure DoStuffWithArray(var passedarray: TStringArray);

然后它会工作.

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

猜你在找的Delphi相关文章