我有一个类,它在TStringList中包含多个文件名.我可以使用索引访问特定的文件名:
myclass.stringlistclass[index]
Run Code Online (Sandbox Code Playgroud)
但是如何使用以下语法获取文件名?
myclass[index]
Run Code Online (Sandbox Code Playgroud)
我可以实现一个属性来实现这个功能吗?
Mar*_*rck 30
private
function GetColumnValue(const ColumnName: string): string; overload;
function GetColumnValue(Index: Integer): string; overload;
procedure SetColumnValue(Index: integer; const Value: string);
public
property Values[const ColumnName: string]: string read GetColumnValue; default;
property Values[ColumnIndex: integer]: string read GetColumnValue write SetColumnValue; default;
end;
Run Code Online (Sandbox Code Playgroud)
这意味着:
default
索引器属性Values
GetColumnValue
Eug*_*its 12
在索引属性上使用"default"关键字. 每个类可以有一个默认属性.
每个类可以有多个默认属性,但这些默认属性必须具有相同的名称.
一个例子:
property Item[const Coordinate: TPoint]: TSlice read GetSlice write SetSlice; default;
property Item[x,y: integer]: TSlice read GetSlice write SetSlice; default;
Run Code Online (Sandbox Code Playgroud)
您甚至可以让getter和setter共享相同的名称,只要它们具有该overload
指令即可.