Ich versuchs dir anhand eines Beispiels zu erklären:
Bei procedures und functions gibt es eine Anweisung
overload. Mit dieser Anweisung kannst du den selben Funktionsnamen mit unterschiedlichen Parametern mehrmals verwenden. Beispiel:
Delphi-Quellcode:
function GetItem(index: integer): TItem; overload;
function GetItem(Name: string): TItem; overload;
function GetItem(Child: TItem): TItem; overload;
Wenn du jetzt die Funktion GetItem aufrufst, entscheidet der Compiler anhand der Parameter, welche Funktion ausgeführt wird:
GetItem(1) -> die erste Funktion wird ausgeführt
GetItem('abc') -> die zweite Funktion wird ausgeführt
GetItem(aItem) -> die dritte Funktion wird ausgeführt (aItem ist vom Typ TItem)
Was jetzt aber
nicht geht:
Delphi-Quellcode:
type
TTest = class
private
function GetStatusI(id: integer): boolean;
function GetStatusS(s: string): boolean;
public
// das funktioniert nicht!!!!!
property GetStatus[id: integer]: boolean read GetStatusI; overload;
property GetStatus[s: string] : boolean read GetStatusS; overload;
end;