鉴于这样的课程:
TIntClass = class
private
myInts : TList<Integer>;
...
end;
如何使用[]运算符访问内部列表的元素,例如
myIntList = TIntClass.Create();
myIntList[5];
提前致谢。
答案 0 :(得分:6)
如果我理解正确,你需要定义一个私有函数,它将作为默认属性的“getter”:
注意:代码未经测试
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;
答案 1 :(得分:0)
它应该是myIntList.myInts [5],假设您在同一个单元内,以便您可以访问TIntClass的私有成员。