3

次のようなクラスがあるとします。

TIntClass = class
private
    myInts : TList<Integer>;
...
end;

[] 演算子を使用して内部リストの要素にアクセスするにはどうすればよいですか。

myIntList = TIntClass.Create();
myIntList[5];

?

前もって感謝します。

4

2 に答える 2

6

私の理解が正しければ、デフォルト プロパティの「ゲッター」として機能するプライベート関数を定義する必要があります。

注: コードはテストされていません

type
  TIntClass = class
  private
      // returns a value from myInts based on Index parameter
      function getItem(Index: Integer): Integer;
  private
      myInts : TList<Integer>;
  ...
  public
      property Items[Index: Integer]: Integer read getItem; default;
  end;

...
implementation

function TIntClass.getItem(Index: Integer): Integer;
begin
  Result := myInts[Index];
end;

だから今、あなたはできる:

procedure test;
var
  LMyIntClass: TIntClass;
  L5thElemValue: Integer;
begin
  L5thElemValue := LMyIntClass[4]; // first element is accessed using LMyIntClass[0]
end;
于 2012-07-15T11:46:37.497 に答える
0

It should be myIntList.myInts[5], assuming that you're within the same unit so that you have access to TIntClass's private members.

于 2012-07-15T11:17:04.070 に答える