我知道在Delphi中,当你想允许使用索引运算符[]时,你必须做类似的事情,
property Item[index: integer]: integer read GetData; default;
Run Code Online (Sandbox Code Playgroud)
如何在Delphi中实现多维数组,以便允许使用如下内容:
matrix := TMatrix<integer>.Create(3,3);
matrix[0][2] := 5;
WriteLn(matrix[0][2]);
Run Code Online (Sandbox Code Playgroud)
你不能那样用[][].但您可以在单个属性中声明多个索引,例如:
type
TMatrix<T> = class
private
function GetData(index1, index2: Integer): T;
procedure SetData(index1, index2: Integer; value: T);
public
constructor Create(dim1, dim2: Integer);
property Item[index1, index2: Integer]: T read GetData write SetData; default;
end;
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
matrix := TMatrix<integer>.Create(3,3);
matrix[0, 2] := 5;
WriteLn(matrix[0, 2]);
Run Code Online (Sandbox Code Playgroud)