我从Delphi中的Object-Pascal开始,但是当他们访问数组时我会陷入使用基本属性的困境。我知道简单的数组可能不是处理数据集的最佳方式,但我想首先获得基础知识,而且我找不到任何基本层面涵盖此主题的文档
所以这是界面'代码':
TExample = class(TObject)
private
intArray : array of integer;
procedure setIntArray(value : integer);
function getIntArray(index : integer);
published
//This is where my problem is
//E2008 Incompatible types
property PIntArray : Integer read getIntArray write setIntArray;
//I tried this way, too
//Property PIntArray cannot be of type ARRAY
property PIntArray[Index : Integer] : Integer read getIntArray write setIntArray;
end;
那么,我怎么能解决这个问题?
感谢您的时间。
答案 0 :(得分:4)
您有多种选择。也许最常用的是数组属性。像这样:
type
TExample = class(TObject)
private
FItems: TArray<Integer>;
function GetItem(Index: Integer): Integer;
procedure SetItem(Index: Integer; Value: Integer);
public
property Items[Index: Integer]: Integer read GetItem write SetItem;
end;
function TExample.GetItem(Index: Integer): Integer;
begin
Result := FItems[Index];
end;
procedure TExample.SetItem(Index, Value: Integer);
begin
FItems[Index] := Value;
end;
这里getter和setter从数组中读取和写入单个项目。您显然还需要Count
属性才能使此类型有用。
我不确定您在哪里查找文档,但可以在此处找到:http://docwiki.embarcadero.com/RADStudio/en/Properties#Array_Properties