Delphi-Standardwert für Prozedurparameter

8
%Vor%

Ich habe eine Prozedur wie diese. Hier ist Inhalt:

%Vor%

Ich möchte diese Funktion auf zwei Arten aufrufen, die ohne Parameter und mit einem Parameter sind. Ich habe das Schlüsselwort overload für Prozeduren gefunden, möchte aber nicht zweimal dieselbe Funktion schreiben.

Wenn ich diese Prozedur wie CaseListMyShares(''); aufruft, funktioniert es.

Aber kann ich darunter in Delphi tun?

%Vor%

und ruf an:

%Vor%     
Nevermore 13.12.2017, 07:52
quelle

1 Antwort

11

Es gibt zwei Möglichkeiten, dies zu erreichen. Beide Methoden sind nützlich und oft austauschbar. Es gibt jedoch Szenarien, in denen das eine oder andere vorzuziehen ist, so dass es sich lohnt, beide der folgenden Techniken zu kennen.

Standard-Parameterwert

Die Syntax dafür lautet wie folgt:

%Vor%

Sie können die Methode wie folgt aufrufen:

%Vor%

Beide oben genannten verhalten sich auf die gleiche Weise. Wenn der Compiler auf DoSomething() trifft, ersetzt er einfach den Standardparameterwert und kompiliert den Code so, als hätten Sie DoSomething('') geschrieben.

Dokumentation: Standardparameter .

Überladene Methoden

%Vor%

Diese Methoden würden wie folgt implementiert:

%Vor%

Beachten Sie, dass der Hauptteil der Logik immer noch nur einmal implementiert wird. Wenn Sie auf diese Weise Überladungen schreiben, gibt es eine master -Methode, die die Arbeit ausführt, und eine Reihe anderer Überladungen, die diese eine Master-Methode aufrufen.

Dokumentation: Prozeduren und Funktionen überladen .

    
David Heffernan 13.12.2017, 09:03
quelle

Tags und Links