不兼容的类型:'动态阵列'和'字符串数组'在德尔福

时间:2016-03-21 19:13:11

标签: arrays delphi

我有一个这样的课程:

Programmer = Class(Worker)
private
  // Some code here
  programmingLanguages: array of String;
  numOfProgrammingLanguages: integer;
public
  // Some code here
  procedure SetProgrammingLanguages(newLanguages: array of String);
  function GetNumOfProgrammingLanguages(languages: array of string) : integer;
end;

当我为SetProgrammingLanguages方法编写以下代码时,出现错误:

procedure Programmer.SetProgrammingLanguages(newLanguages: array of String);
begin
  programmingLanguages := newLanguages;
end;
  

不兼容的类型:'动态阵列'和'字符串'

的数组

如何解决此问题?

1 个答案:

答案 0 :(得分:3)

解决方案是先声明一个新类型,比如TProgrammingLanguages = array of string;。然后在类声明和方法参数中使用它。

现在编写的方法参数是open array parameter,它与您用于programminglanguages字段的动态数组类型不同。

要了解Open array parameters,请参阅documentation