arrays - Delphi 中二维数组的索引运算符属性

标签 arrays delphi

我知道在 Delphi 中,当您想允许使用索引运算符 [] 时,您必须执行类似的操作,

property Item[index: integer]: integer read GetData; default;

如何在 Delphi 中实现多维数组,使其允许使用类似的东西:

matrix := TMatrix<integer>.Create(3,3);
matrix[0][2] := 5;
WriteLn(matrix[0][2]);

最佳答案

你不能那样使用[][]。但是您可以改为在单个属性中声明多个索引,例如:

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;

然后你可以这样做:

matrix := TMatrix<integer>.Create(3,3);
matrix[0, 2] := 5;
WriteLn(matrix[0, 2]);

关于arrays - Delphi 中二维数组的索引运算符属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37603003/

相关文章:

c++ - 我在 C++ 中构建 "*"数组时遇到问题

delphi - 通知从 dll 到主应用程序的事件

c++ - Delphi 和 C/C++ DLL 结构与记录

python - 删除两个等长数组中nan AND对应的元素

java - 计算数组中两个相邻数字之间的最大差值

java - 稍后使用方法添加到字符串数组

javascript - Jquery - 从选择框进行数组操作

delphi - 如何使组合框下拉列表比组合框本身*窄*

delphi - TWeb浏览器 : Zoom + "one window mode" incompatible

Delphi动态数组迭代和记录复制