次のようなクラスがあるとします。
TIntClass = class
private
myInts : TList<Integer>;
...
end;
[] 演算子を使用して内部リストの要素にアクセスするにはどうすればよいですか。
myIntList = TIntClass.Create();
myIntList[5];
?
前もって感謝します。
私の理解が正しければ、デフォルト プロパティの「ゲッター」として機能するプライベート関数を定義する必要があります。
注: コードはテストされていません
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;
It should be myIntList.myInts[5], assuming that you're within the same unit so that you have access to TIntClass's private members.