![]() |
Variable Argumente
So, ich wollt mal von euch wissen, ob folgendes vllt möglich ist:
Ich will eine Funktion, die ein Argument erwartet. Das Argument wird in einer Case-Verzweigung ausgewertet... Bei einem bestimmten Argument soll dann allerdings noch ein zweites mitgegeben werden, was ich dann brauche, allerdings nur bei diesem bestimmten. Hoffe meine Frage is verstaendlich und nich zu kompliziert formuliert. :) Im hoffen auf Antworten, Luc~ PS: Und nein, ich meine keine Variable langen Argumentlisten, das würde nämlich nich damit gehn, da meine Argumente verschiedene Typen ham ;( |
Re: Variable Argumente
Dein Stichwort ist Overload. Damit kannst du gleichnahmige Funktionen mit unterschiedlichen Parametern definieren.
Delphi-Quellcode:
function MachWas(i : Integer) : Boolean; overload;
function MachWas(p : Pointer; l : Integer) : Boolean; overload; |
Re: Variable Argumente
Meinst Du so etwas (sinnfreies Beispiel)?
Delphi-Quellcode:
function EineFunction(intvar: integer; stringvar: string = ''): integer;
begin case intvar of 0: Result := 0; 1: if stringvar = 'Wuppdi' then Result := 1 else Result := -1; else Result := 2; end; end; |
Re: Variable Argumente
Zitat:
Delphi-Quellcode:
Der zweite Parameter muss nicht angegeben werden und wäre in dem Fall dann ein leerer String.
function NeFunktion(parameter1 : String; parameter2 : String = '') : Boolean
|
Re: Variable Argumente
Zitat:
|
Re: Variable Argumente
Hui das ging mal wieder schnell. :D
Zitat:
Wollt zwar eig alles in eine Function packen, sollte aber auch damit wunderbar funzen, danke dafür! :) Zitat:
Delphi-Quellcode:
aufrufen?
NeFunktion('blub');
Wär natürlich perfekt :) Zitat:
|
Re: Variable Argumente
Das mit den Const-Parametern entspricht mehr einem dynamischen Array of Variant, was einen etwas höheren Verwaltungsaufwand bedeutet.
beim Overload kannst du auch einfach den Aufruf weiterleiten (in der einen Funktion die Andere, mit dem ergänztem Parameter, aufrufen) und zu den Default-Parametern: das wäre die effektivste Variante, denn dort setzt der Compiler bei nicht angegebenen Parametern direkt den Defaultwert ein.
Delphi-Quellcode:
also JA, du kannst es so machen
// die Definition:
function NeFunktion(parameter1 : String; parameter2 : String = '') : Boolean // du programmierst das so NeFunktion('blub'); // und nach dem kompilieren steht effektiv dieses in der EXE NeFunktion('blub', ''); |
Re: Variable Argumente
Gut, danke für die Hilfe, ich denke ich werd die Sache mit den Standardargumenten nehmen. ^^
Greetz, Luc~ |
Re: Variable Argumente
Hallo,
eine andere, aufwendigere Methode wäre die Verwendung einer Parameter-Klasse, also einer eigenen Klasse für die verschiedenen Parameter. Vorteil ist die einfache Erweiterbarkeit, wenn neue Parameter hinzukommen sollen. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz