我有一个这样的课程:
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;
不兼容的类型:'动态阵列'和'字符串'
的数组
如何解决此问题?
答案 0 :(得分:3)
解决方案是先声明一个新类型,比如TProgrammingLanguages = array of string;
。然后在类声明和方法参数中使用它。
现在编写的方法参数是open array parameter
,它与您用于programminglanguages
字段的动态数组类型不同。
要了解Open array parameters
,请参阅documentation。